我目前正在使用带有https://maven.apache.org/plugins/maven-war-plugin/的maven3和带有http://mojo.codehaus.org/build-helper-maven-plugin/的http://tomcat.apache.org/maven-plugin-2.0/来添加 src/main/java
旁边的其他来源,如 src/mock/java
运行 mvn tomcat7:run
时,这些附加类也会出现测试资源 . 捆绑WAR(通过 mvn package
)时,会排除这些虚假资源 . 在大多数情况下,这很好,因为战争束是我们发运的,并且正在prod服务器上部署 .
Problem 1: 但是:"fake"类仍然在WAR构建中被授予对 生产环境 性WAR而言不干净的内容 .
但还有另一个用例:使用这些额外的类和资源构建一个WAR文件,以便通过持续集成/部署(jenkins)在本地开发服务器上进行部署这看起来很棘手......
Problem 2: 当前的WAR有假类而不是假资源; /
Question :如何在正常构建中排除假类但是如何包含这些源以及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>
这个问题与以下内容有关:
2 回答
您应该使用不同的配置文件(请参阅http://maven.apache.org/guides/introduction/introduction-to-profiles.html)来构建您的战争 . 包含虚假来源/资源的"continuous integration" Profiles ,以及没有这些资料的"production" Profiles .
我是如何修理它的: