我是新來的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