实际开发的时候还有很多的jar包,并没有与之相对应的maven依赖,可以通过pom文件中直接导入。
一般有四种方法解决这个问题:
- 将jar包上传至global maven仓库
- 创建本地maven仓库
- pom的system属性导入
- 通过IDE设置导入jar包
1. 将jar包上传至global maven仓库
教程
配置起来比较麻烦吧,但好处就是事后方便,直接pom导入,打包部署什么的,也不会出现bug
2. 创建本地maven仓库
mvn install:install-file -Dfile=~(包名).jar -DgroupId=com.xxx.Driver -DartifactId=yyy -Dversion=1.0.0 -Dpackaging=jar
用上述命令去创建一个本地maven仓库,那么即可采用下列方式导入
<dependency>
<groupId>com.xxx.Driver</groupId>
<artifactId>yyy</artifactId>
<version>1.0.0</version>
</dependency>
用起来也挺方便的,但是占用了本地的配置,但打包成jar包的话,不会有bug。
3. pom的system属性导入
<dependency>
<groupId>com.xxx.Driver</groupId>
<artifactId>yyy</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/~.jar</systemPath>
</dependency>
${basedir}是项目根目录,不用去修改,改后面的路径即可。
这种方法在IDE运行时,应该是没问题的,但在打包成jar后,不一定能找到,即便你使用了resources属性去添加本地子jar包,本地子jar包会出现在总的jar包目录里,但当调用本地子jar包时,也可能出现找不到依赖而报错的情况。
springboot就比较稳定了,可以使用下列方式将本地jar包因为到打包后的jar包里:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
不过打包成jar包后出现找不到子jar包的bug也不要紧,可以使用下列命令行,在jar包启动时,强制导入其他jar包:
java -Djava.ext.dirs=./lib -jar 总包名.jar
意思是将lib文件里的jar强制导入要启动的jar包里,那么总jar包就可以运行时使用lib文件内的jar包了
4. 通过IDE设置导入本地jar包
这个就不多说了,查看不同的IDE设置吧
IntelliJ IDEA的导入本地jar包教程
然后有错误的地方,欢迎留言吧!(顺便点个赞呗,嘻嘻!😉)