在项目开发过程中,程序员经常要将公共的功能代码打包共享给其他模块重复使用,此外还有以前沉淀下来的公共框架代码。这里可以使用 mvn package 命令将这些代码打包,构建成构件,发布到仓库中共享,以便其他项目可以做依赖构件使用。
同样地,对那些有着良好设计,能够重复使用在项目的不同模块中、甚至不同项目中的测试代码,也需要打包成构件重复使用,从而减少编写测试代码的工作量。而 mvn package 只会对主代码和资源文件进行打包安装与部署,对测试代码和资源文件是不会处理的。
为了实现将测试代码和资源文件打包安装与部署,可以在 pom 中配置 maven-jar-plugin 插件,样例配置代码如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>
maven-jar-plugin 有两个目标:一个是 jar;另一个是 test-jar。jar 目标有内置绑定到 Maven 的 default 生命周期的 package 阶段,会在 Maven 工程进行构建的时候自动执行,将项目的主代码和资源文件进行打包。
test-jar 目标没有内置绑定,所以需要用户在插件配置中声明该目标,从而达到在 Maven 工程构建的时候将测试代码和资源文件打包。test-jar 目标是默认绑定到 default 生命周期的 package 阶段,所以当运行 mvn clean package 命令的时候,能同时将主代码和测试代码分别打包。
最后需要说明的是,当使用测试构件依赖的时候,需要指定依赖的 type 为 test-jar,样例配置代码如下:
<dependency> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <type>test-jar</type> <score>test</score> </dependency>
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/23018.html