2014-03-24 92 views
3

我有Java項目構建與Maven有一些依賴關係。其中一個依賴關係是另一個項目(我有Eclipse工作空間),它只在test範圍內。如何從構建中排除{test}作用域依賴關係?

<dependency> 
     <groupId>my.group.id</groupId> 
     <artifactId>artifactid</artifactId> 
     <version>1.0</version> 
     <scope>test</scope> 
    </dependency> 

我使用下面的命令項目的根目錄

mvn clean package -Dmaven.test.skip=true 

裏面是什麼我希望發生這是行家將建立項目留下的測試依賴背後建立我的項目。然而,未解決的依賴異常被拋出(我的test作用域依賴未解決)。正如我跑建立與-X選項命令,我在我的項目建設計劃spoted以下報告:

[DEBUG] Dependencies (collect): [] 
[DEBUG] Dependencies (resolve): [compile, runtime, test] 
[DEBUG] Repositories (dependencies): [central (http://repo.maven.apache.org/maven2, releases)] 
[DEBUG] Repositories (plugins)  : [central (http://repo.maven.apache.org/maven2, releases)] 
[DEBUG] ----------------------------------------------------------------------- 

因此,儘管跳過測試,甚至編譯它們(mvn clean compile運行正常)行家嘗試解決測試的依賴。

如何排除從構建計劃依賴的測試依賴跳繩測試執行時拆分步驟?

回答

4

簡而言之:你不能。至少不容易。 maven.test.skip不會阻止surefire:測試mojo運行,它僅配置插件不執行任何操作。 (與編譯相同:testcompile)。

兩個mojos需要依賴範圍測試的解決(的魔力定義的一部分)。

因此,防止被解決這些依賴的唯一的選擇是,要麼:

  • 使用的配置文件,並重新綁定編譯:testCompile以及神火:測試,以不存在的階段
  • 把所有的在一個單獨的配置文件

測試依賴然而,兩個方案都比較髒。

所以你最好的選擇將是第一次安裝相關僞像(使用mvn install),並簡單地接受Maven的方式解決依賴。足夠

+1

博覽會。謝謝。 – Antoniossss