2011-04-05 180 views
1

我是新來的maven。我有產品結構如下禁用在父pom中定義的maven版本插件

myWebProduct 
    pom.xml 
    coreModule 
    webModule 
    htmlTestModule 

Maven的發佈插件在pom.xml文件的公司水平,這是myWebProduct父定義。它已經設置發佈插件運行默認目標deploy和默認準備目標clean verify install

我想發佈myWebProduct級別的產品,除了我想跳過發佈版本htmlTestModule之外,它的工作正常。因爲deploy生命週期htmlTestModule將導致將war文件部署到遠程Tomcat服務器,並且我不希望在發佈過程中發生這種情況。

我試圖在htmlTestModulepom.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執行。 謝謝

回答

0

我想你在這裏採取了錯誤的做法。讓我解釋。

maven的deploy階段並不意味着部署到遠程服務器或類似的東西。這意味着要部署到遠程存儲庫。

因此,我認爲你不應該試圖跳過部署階段的模塊中,而是從deploy階段未配合部署到遠程Tomcat服務器,通過使例如特定目標。

+0

感謝您的回覆。我已經將我的部署war文件綁定到了準備包階段的tomcat服務器,因爲我的測試目標依賴於此。你對這種測試包有什麼建議? – user639812 2011-04-07 16:23:19

+0

這一切都取決於,但我的一般規則是,我的構建應該是自包含的,包括(集成)測試。 所以,我會考慮部署在本地(構建)Tomcat實例(例如使用Cargo或Tomcat插件)並在那裏測試。這樣您的構建不依賴於需要特定配置的任何外部資源。 如果這需要太多的時間來運行版本,那麼我建議你找到一種方法來跳過對tomcat實例的測試,而不是完整的部署階段。 此測試的最佳階段可能是集成測試階段。 HTH。 – SaM 2011-04-09 07:25:56