我目前正在使用带有https://maven.apache.org/plugins/maven-war-plugin/的 maven3和带有http://mojo.codehaus的http://tomcat.apache.org/maven-plugin-2.0/ .org/build-helper-maven-plugin/src/main/java
在like旁边添加其他源src/mock/java
运行mvn tomcat7:run
这些附加类时,还存在测试资源。捆绑 WAR(通过mvn package
)时,这些虚假资源被排除在外。在大多数情况下这很好,因为战争包是我们发布的并且正在部署在产品服务器上。
问题 1:但是:“假”类仍然在 WAR 构建中被授权,这对于生产性 WAR 来说是不干净的。
但是还有另一个用例: 使用这些额外的类和资源构建一个 WAR 文件,用于通过持续集成/部署(jenkins)在本地开发服务器上部署这似乎很棘手......
问题 2:当前 WAR 有假类但没有假资源;/
问题:如何在正常构建中排除假类,但如何在 WAR 构建中包含这些来源以及假资源?
这就是我所做的:
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
<testResource>
<directory>src/mock/resources</directory>
</testResource>
</testResources>
…
… // plugins section
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources-after-test</id>
<phase>prepare-package</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/src/main/java-fake</source>
<source>${project.basedir}/src/mock/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
</configuration>
</plugin>
这个问题与: