前言
先吐槽几句,公司有一小组专门来做各个项目的测试环境以及打包上线的工作,我们称之为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包。