2013-08-20 80 views
0

我想從最終的戰爭版本(使用mvn package/install)中排除以下依賴關係。maven依賴戰爭問題

哪個範圍更好?

<dependency> 
    <groupId>com.sun.faces</groupId> 
    <artifactId>jsf-api</artifactId> 
    <version>2.2.2</version> 
    <scope>provided</scope> 
</dependency> 
+2

如果提供了它,它會提供 - 問題是什麼? –

+0

戴夫,我仍然可以在生成的戰爭文件中看到它。我用mvn clean install – techie2k

+0

@ techie2k別的東西可能會依賴於它。 –

回答

1

您有2個選項,providedtestprovided也會在測試中排除類路徑中的jar。如果要測試依賴於該依賴關係的代碼,則應該使用test

如果你在安裝後仍然在你的war文件中看到這個依賴關係,我們需要更多的信息來進行調試。這可能是因爲你沒有意識到這一點,就不止一次地包含了這個依賴。也可能是另一個依賴包含這個jar,你必須使用exclude標籤去除它。

+0

依賴圖不顯示重複..無論如何,我會分析相同的 – techie2k

0

取決於您的目標部署服務器。如果您正在應用服務器上部署,例如安裝了JSF庫的Glassfish,Jboss等,則scope提供的是優選的。或者使用排除來消除目標戰爭中的依賴。

或者,如果您正在部署上下文服務器,例如tomcat,jetty等,請移除作用域目標以將庫複製到一起以避免依賴性問題。