前因
有一个项目比较庞大,有多名组员参与开发,我负责的模块中中引入了公司私库jar导致其他同事的项目中maven的setting也需要配置一个私库的地址。否则由于我的模块中获取不到依赖第三方jar导致项目启动报错。
正常的私库的配置maven-public如图(此图仅仅代表个人看法正常配置范围):
我觉得哈,应该包含一个aliyun仓库,一个maven仓库,一个或多个多自定义私库。
后果
但是我们另一个同事在download一个maven的jar的配置时候,发现通过我们公司私库无法获取,但是不走私库直接连接aliyun仓库是可以的。于是乎 有了如下说法: 因为目前就我个人在项目中使用到了私库,所以被要求是在项目中pom文件配置repositories仓库,或者导入jar方式加入到项目依赖中。
第一种,在项目中pom文件中配置repositories
如图:截图来源
我之前尝试过此类方法,但是好像是因为私有仓库非公开,pom中配置的仓库地址默认无密码的,当我在pom文件配置远程私有仓库地址时候,看日志是被远程私人仓库拒绝访问了。 我猜测是因为认证问题。
第二种方式,在项目中引入jar包依赖。
创建lib目录,放入第三方jar包
pom文件中依赖第三方jar包
${project.basedir} pom文件中变量,这里是指定当前模块xxxModule目录范围,
然后我指明了当前第三方jar的绝对路径地址。
插曲
实际打包过程中,我模块xxxModule下lib的jar包没有打到根目录的lib下,在网上搜索了一番。得到如下答案!!!
实际打包结果发现,第三方jar包已经打包到项目中,但是目录名为“lib-provide”,在Tomcat部署中,项目报错,无法找到指定NotFoundClass(好像是这个报错 😁)文件。Emmm的我想打第三方jar到目录lib下啊。。。。
项目是springBoot的多模块项目,maven打包package时,当前模块打包为xxxx.jar到根目录lib下。
最终
经过我不断的百度啊 百度,我发现一种方式。
参考博客地址
在打包根目录模块的pom文件中,配置resource
directory :需要打包的第三方jar的目录地址
targetPath:第三方jar打包的目录地址
includes:包含任意目录下的jar包
实际打包测试中,webModule.war包中的lib目录已经成功出现我模块所以依赖的第三方jar包。