【发布时间】:2013-01-21 18:53:20
【问题描述】:
我目前正在使用带有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)时,这些虚假资源被排除在外。
在大多数情况下这很好,因为战争包是我们发布的并且正在部署在产品服务器上。
问题 1: 但是:“假”类仍然在 WAR 构建中被授权,这对于生产性 WAR 来说是不干净的。
但还有另一个用例: 使用这些额外的类和资源构建一个 WAR 文件,以便通过持续集成/部署 (jenkins) 在本地开发服务器上进行部署 这似乎很棘手......
问题2:当前的WAR有fake classes但没有fake-resources ;/
问题:如何在正常构建中排除假类,但如何在 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>
这个问题与:
【问题讨论】:
-
也许像战争之类的东西会有所帮助?