我是新来的maven。我有产品结构如下禁用在父pom中定义的maven版本插件
myWebProduct
pom.xml
coreModule
webModule
htmlTestModule
Maven的发布插件在pom.xml
文件的公司水平,这是myWebProduct
父定义。它已经设置发布插件运行默认目标deploy
和默认准备目标clean verify install
。
我想发布myWebProduct
级别的产品,除了我想跳过发布版本htmlTestModule
之外,它的工作正常。因为deploy
生命周期htmlTestModule
将导致将war文件部署到远程Tomcat服务器,并且我不希望在发布过程中发生这种情况。
我试图在htmlTestModule
的pom.xml
中添加以下内容。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
<configuration>
<skip>true</skip>
<preparationGoals>clean validate</preparationGoals>
<goals>testCompile</goals>
</configuration>
</plugin>
但是当运行'mvn release:perform'at myWebProduct
。我已经看到部署目标仍然在htmlTestModule
上执行。任何人都可以帮忙吗?
而且我也试过下面就htmlTestModule
:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>donotRunMe</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
尽管如此,部署目标总是htmlTestModule
执行。 谢谢
感谢您的回复。我已经将我的部署war文件绑定到了准备包阶段的tomcat服务器,因为我的测试目标依赖于此。你对这种测试包有什么建议? – user639812 2011-04-07 16:23:19
这一切都取决于,但我的一般规则是,我的构建应该是自包含的,包括(集成)测试。 所以,我会考虑部署在本地(构建)Tomcat实例(例如使用Cargo或Tomcat插件)并在那里测试。这样您的构建不依赖于需要特定配置的任何外部资源。 如果这需要太多的时间来运行版本,那么我建议你找到一种方法来跳过对tomcat实例的测试,而不是完整的部署阶段。 此测试的最佳阶段可能是集成测试阶段。 HTH。 – SaM 2011-04-09 07:25:56