很多第三方库和jar包都可以在Maven的官方仓库找到,要用到这些库只需要在项目的pom文件中添加依赖即可。
但有些库或jar包可能在Maven的官方仓库中无法找到,比如自己开发的jar包,而项目又必须用到,这时候就必须特殊处理。
1. 添加scope为system的dependency
image2. 在maven-compiler-plugin中配置 compilerArguments
image但是必须file->project structure中添加依赖的jar包。
3. 建立远程仓库,也即私服,统一管理私人的库,再在pom中配置远程repository。
4. 将用到的非maven官方仓库维护的库或jar包拷贝到maven在本地机器上的本地仓库(windows下目录一般为:C:\Users\Administrator.m2\repository),在pom上以常规的方式添加dependency。
这里要具体介绍第4中方式。因为第一和第二种方式在用maven-shade-plugin插件打包时,不是常规方式添加的dependency是不会加入打出来的jar包中的,scope为system的依赖也会被忽略掉。而第三种方法太麻烦了,必须有局域网,否则自己的库很容易被外界窃取,一般只有企业才会采取这种统一的管理方式。
最简单的方法就是将这些包copy到本地仓库,再像正常方式一样添加依赖。
这里介绍一个简便的方法,不需要手动copy包到本地仓库。通过配置脚本运行打包,在脚本中执行maven打包命令,在打包之前,先将依赖的包保存到本地仓库。
比如项目的根目录下有个lib目录,目录下都是非maven官方维护的库和jar包。
在项目根目录下新建一个windows的bat脚本文件package_windows.bat:
image脚本程序如下:
image先将myJar1.jar, myJar2.jar和myJar3.jar上传到本地仓库,再执行打包命令。这种方式用maven-shade-plugin插件打包时,能成功将所有maven官方仓库维护的库和非maven官方仓库维护的库的依赖都成功打成一个CLI命令行可执行的包。
配置脚本运行打包的方式可参考上一期的“Intellij Idea结合Maven打包的3中方式”中的最后一种。
网友评论