2014-03-13 29 views
4

當使用maven發佈插件時,mvn版本:prepare和mvn release:perform將運行測試。Maven發佈插件在執行但不準備時跳過測試

有什麼辦法可以配置的東西,所以他們只能在mvn發佈期間運行:準備?

我知道你可以通過:

-Darguments =「 - DskipTests」

但是,這將跳過期間這兩個目標,這是我不希望的測試。而且我也不希望它們在發佈時運行:執行並不準備,因爲執行期間的失敗已經標記了存儲庫。

+0

這看起來相關http://maven.40175.n5.nabble.com/Skip-tests-on-release-td2456830.html – EdH

回答

1

您應該可以通過將<releaseProfiles>元素添加到發行插件配置中。這隻會用於釋放:執行Mojo。

像這樣的東西應該做的伎倆:

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <configuration> 
       <releaseProfiles>skipTestsForReleasePerform</releaseProfiles> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
(...) 
<profiles> 
    <profile> 
     <id>skipTestsForReleasePerform-tests</id> 
     <properties> 
      <maven.test.skip>true</maven.test.skip> 
     </properties> 
    </profile> 
</profiles> 
+0

我嘗試與配置文件。 Jenkins不允許你單獨參數化你的發佈目標,這使我的問題更加複雜。對於你的發佈目標和參數,只有一個框。我最終通過讓作業運行版本來解決這個問題:按照正常進行準備,然後執行發佈版本的後期構建操作:僅在真正版本上執行測試(其中由Jenkins設置一個環境變量)。 Hacky並不完全是Maven的方式,但它最終做得足夠好。 –

+0

通過使用我的回答,你不應該被迫改變Maven命令中的任何東西,所有東西都在POM中指定,我們只是「強制」發佈插件添加-Pxxx與releaseProfile元素。 – Tome

+0

工程就像一個魅力! – pmartin8

相關問題