我有一个名为
synapse
的 Maven 模块。
main
java
package1
A.java
test
java
common
C.java
package1
ATest.java
有人可以告诉我,在maven中我是否可以创建一个包含所有非测试代码(
main/
)的不可执行jar和另一个仅包含包下代码test-jar
的test/java/common
?
我尝试了以下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<includes>
<include>common/**</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugin>
</plugins>
</build>
我观察到
test-jar
正在按预期创建,仅包含 test/java/common
中的代码,但不可执行、非测试 jar 不包含 main/java/package1
中的代码。
您的配置过滤器将应用于默认 jar 以及测试 jar。将您的配置移至执行范围:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<includes>
<include>common/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>