前言
先吐槽几句,公司有一小组专门来做各个项目的测试环境以及打包上线的工作,我们称之为XX,这个XX并不是什么业务领导,也只是一个螺丝钉。这群人每天对上跪舔,对其他人爱搭不理,给人一种高高在上的感觉,之前的一个老旧项目,好多年都没有新增过jar包了,最近有需求需要上线一个jar包,但是maven私仓地址我们团队的同事都有,那就只能找XX要了,结果两天发了n条消息就是不回复。我的工作也不能顺利推进。没办法只能自己想办法解决了。看了一下maven的文档发现一个systemPath关键字。于是探索了一下。
打包本地jar包
在pom.xml中添加配置。
<dependency><groupId>com.test.test</groupId><artifactId>whiteList</artifactId><version>1.0</version><scope>system</scope><systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/WhiteList.jar</systemPath></dependency>
这个配置相对于大家熟悉的从仓库拉去有明显的区别。
这里的greoupId、artifaceId、version都是自定义的。scope必须指定为system,这样maven在打包的时候就会从本地去寻找依赖jar,systemPath则是指定jar包所在的位置。
${project.basedir}表示的就是项目路径
我的工程项目如下:
最后在pom.xml的build标签中添加如下内容:
<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.*</include></includes></resource><resource><directory>src/main/webapp</directory><includes><include>**/*.jar</include></includes></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.0.2</version><configuration><source>1.5</source><target>1.5</target></configuration></plugin></plugins></build>
这样就不用上传maven私仓,打包出来的最终war包里就会包含本地jar包。