2017-05-11 44 views
0

我有一個多模塊maven項目,並且在每個模塊內部都有一些單元測試。在Maven中避免單元測試在未更改模塊中

如果我在一個模塊中更改源代碼並執行「mvn package」,則還會執行其他模塊中的測試。

我知道mvn「package」生命週期執行「package」(編譯,測試等)之前的所有生命週期。

但是有沒有一個聰明的方法,這可以避免?

+0

也許看看http://stackoverflow.com/questions/42338827/skip-maven-build-for-unmodified-modules – Nemesis

+0

使用mavens'-pl:project1,:project2'參數來構建僅更改的子項目。 –

+0

@TimothyTruckle我正在做Jenkins內部的構建。那麼,我怎麼知道哪個模塊已經改變? – Yashu

回答

0

無法評論,因爲我沒有足夠的分數。 除了@ timothy-truckle,你可以使用「-am」標誌來重新編譯和測試你擁有的任何依賴;例如:

mvn -pl moduleX -am package 

將編譯和測試MODULEX和模塊MODULEX取決於

+0

您好@ferrema,我在Jenkins做這個,所以我怎麼知道哪個模塊發生了變化? – Yashu

+0

@Yashu,看起來像詹金斯有問題:https://issues.jenkins-ci.org/browse/JENKINS-11964 – ferrema

0

使用Maven型材。

  1. 爲每個模塊創建一個單獨的配置文件。
  2. 爲配置文件(如模塊的工件標識)提供一個簡單標識的名稱。
  3. 在其配置文件部分內的每個模塊中配置maven-surefire插件以跳過該模塊中的單元測試。
  4. 現在,當你構建模塊M1和想跳過單元測試模塊m2的&立方米,激活M2的曲線& M3從命令行通過,

    MVN包-p M2,M3

相關問題