目录
把不在中央仓库(或者是自定义)的jar加入到项目中作为依赖(idea版)
最近在使用kettle进行二次开发的时候,里面有很多依赖都已经不在maven的中央仓库了,而且也不再公司的私服,,所以在进行项目打包的时候一直报错:

但是通过依赖又可以下载到本地仓库中,但是打包的时候就是报这个错,所以打算手动的引入这个依赖。
官网的依赖:可以把这个依赖下载到本地,但是打包的时候依赖解析不了或者是在报错在仓库中找不到;
- <dependency>
- <groupId>pentahogroupId>
- <artifactId>pentaho-s3-vfsartifactId>
- <version>7.1.0.12-132version>
- dependency>
先下载这个jar的依赖(网络上一般都是有资源的),这里我没有使用maven的命令安装模式,而是通过lib依赖于pom配置来完成的:
1、在项目的pom.xml文件中引入该jar包依赖
- <dependency>
- <groupId>pentahogroupId>
- <artifactId>pentaho-s3-vfsartifactId>
- <version>7.1.0.12-132version>
- <type>jartype>
- <scope>systemscope>
- <systemPath>${project.basedir}/src/main/resources/lib-s3/pentaho-s3-vfs-7.1.0.12-132.jarsystemPath>
- dependency>
2、在idea创建lib-s3文件作为依赖(与上面的路径保持一致)
先在resource目录创建lib-s3文件夹:
注意是在src的resource目录下创建:这里我是命名为lib-s3:然后把相关的jar包复制到这个lib-s3文件:
![]()
然后在idea中设置引入依赖:

注意:如果没有add as library这个选项,那说明你这个maven模块中的resource目录下的文件可能是被默认为依赖,你可以把依赖包直接放到你创建的文件夹就行。然后看看可不可以被引用。

刷新pom文件,成功后这个jar包是可以展开的:

然后使用maven打包测试一下,发现确实是可以使用了。
最近在学习对kettle进行二次开发,在使用自己定义的代码中的类的时候,可能需要使用到一些其他外部的jar,但是单纯使用maven来进行打包,是不能把对应的jar打包进项目中的,所以部署jar的时候就会出现依赖的class文件不存在的错误,所以需要把外部的jar一起打包进入jar包:
把外部依赖一起打包到jar包中:
修改pom文件:
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.pluginsgroupId>
- <artifactId>maven-assembly-pluginartifactId>
- <version>2.4version>
- <configuration>
- <appendAssemblyId>falseappendAssemblyId>
- <finalName>xxx-xxx-sdkfinalName>
- <descriptorRefs>
-
- <descriptorRef>jar-with-dependenciesdescriptorRef>
- descriptorRefs>
- <archive>
- <manifest>
- <addClasspath>trueaddClasspath>
-
- <mainClass>com.xxx.xxx.xxxmainClass>
- manifest>
- archive>
- configuration>
- <executions>
- <execution>
- <id>make-assemblyid>
- <phase>packagephase>
- <goals>
- <goal>assemblygoal>
- goals>
- execution>
- executions>
- plugin>
- plugins>
配置完成后,再执行:

参考博客:maven 打包将依赖打进jar包_xzyxcy的博客-CSDN博客_maven打包的时候将依赖的jar包也打进去