美文网首页
打包时对非Maven官方仓库的jar包的处理

打包时对非Maven官方仓库的jar包的处理

作者: henry技术探索记录员 | 来源:发表于2019-04-03 13:53 被阅读0次

    很多第三方库和jar包都可以在Maven的官方仓库找到,要用到这些库只需要在项目的pom文件中添加依赖即可。

    但有些库或jar包可能在Maven的官方仓库中无法找到,比如自己开发的jar包,而项目又必须用到,这时候就必须特殊处理。

    1. 添加scope为system的dependency

    image

    2. 在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中方式”中的最后一种。

    相关文章

      网友评论

          本文标题:打包时对非Maven官方仓库的jar包的处理

          本文链接:https://www.haomeiwen.com/subject/usvvpqtx.html