要求仅使用测试用例创建单独的项目。该项目(使用Maven构建)不包含源包中的任何文件;它只包含测试源中的测试用例。目前,使用maven-jar-plugin
将它们打包成测试JAR;相关代码如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${assembleDir}/lib</outputDirectory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.json</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.companyname.project.TestRunner</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Class-Path>../conf/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
构建项目时,也会创建源包的空JAR文件。如何在不停止测试JAR包装的情况下避免这种情况?
一个理想的解决方案是阻止Maven为源包创建JAR,如果它不包含任何文件。
解决方案
根据上述重定向问题answer,添加了
<execution>
<id>default-jar</id>
<phase/>
</execution>
到上面的<executions>
部分。
虽然,不是我想要的确切解决方案,但它的工作原理从未如此。