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

很多第三方库和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中方式”中的最后一种。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内容简介: 张倩倩一个人倒上海闯荡,遇到了离过婚的王一和,缘分的奇妙之处就在于他经常把两个平行线上的人交集起来。张...
    一生悫阅读 3,434评论 0 0
  • 一、问题背景 相信很多ios开发者在项目中都需要用到uiwebview,那就离不开url了,一般符合网络标准的...
    FuWees阅读 11,931评论 1 6
  • 那些隐藏在心里的种种,我所担忧的,害怕的,渴望的,留恋的 无法倾诉于任何人 甚至我自己。 为何这个冬天如此漫长和难熬。
    ichigobaby阅读 1,794评论 0 0
  • 皎兮玉树银鞍剑,清影婆娑。富贵欢薄,画扇悲秋酒自酌。 千壶繁华笙歌落,锦意难托。花谢空阁,饮水逯亭笺传说。 海棠社...
    婵月舞罗衣阅读 3,110评论 2 4
  • 2019年1月19日星期六阴 今天我非常高兴,孩子考完在家里,无论他考的怎样,今天没有作业也是我和他最放松的一天。...
    曹硕妈妈阅读 1,053评论 0 0