2013-05-09 73 views
3

我正在使用maven-shade-plugin,我不想排除我的測試代碼,但我的測試依賴關係在陰影的jar中。我意識到我可以特別排除某些工件(如junit),但這是一個很好的工作,並且最有可能出現一些錯誤。如何從陰影的Maven jar中排除測試依賴關係?

我將minimizeJar設置爲true,但我仍然看到我的Junit和Mockito依賴項出現。有沒有辦法通過配置排除所有測試範圍的依賴關係?

+0

?你的pom是怎樣的?我用Junit創建了一個測試項目作爲測試範圍,並且陰影插件沒有將其打包。有可能一個其他lib不在測試範圍內,Junit作爲依賴項? – mszalbach 2013-05-09 20:13:46

+0

@mszalbach這是兩件事的結合:一是,有一個測試依賴項被錯誤地聲明爲編譯。二,有一個測試依賴項,其中包含.java文件,在我看着陰影的jar時沒有注意到擴展名。所以,你是對的,測試依賴.class文件不會被打包。 – AHungerArtist 2013-05-10 13:28:04

回答

3

請在test範圍檢查您的測試依賴關係:

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
... 

要檢查你所依賴的設置是否使用的是遮陽插件的版本中使用

mvn dependency:tree 
+0

@ryzmek這是兩件事的結合:一,有一個測試依賴項被錯誤地聲明爲編譯。二,有一個測試依賴項,其中包含.java文件的jar文件,當我看着陰影的jar時,我沒有注意到擴展名。 – AHungerArtist 2013-05-10 13:28:40

+0

我認爲可能是這樣。這就是爲什麼我建議'dependency:tree'。這是一個非常有用的工具 – rzymek 2013-05-10 14:04:05

相關問題