2012-06-26 104 views
2

我在Maven中使用JBoss AS 7,並且還添加了RichFaces,我幾乎可以肯定的是,不會隨JBoss提供。所以我補充說,我的pom.xml:更改繼承的依賴關係的依賴

<dependency> 
    <groupId>org.richfaces.core</groupId> 
    <artifactId>richfaces-core-impl</artifactId> 
    <version>4.1.0.Final</version> 
    <scope>compile</scope> 
</dependency> 

但是RichFaces的也有它的依賴性,所以cssparsersac還帶有編譯範圍,但同時又是在JBoss AS 7,所以下面的警告是當我運行JBoss的:

Deployment "deployment.test.war" is using a private module ("org.w3c.css.sac:main") which may be changed or removed in future versions without notice. 
Deployment "deployment.test.war" is using a private module ("net.sourceforge.cssparser:main") which may be changed or removed in future versions without notice. 

我認爲,出現這樣的警告,因爲我有這個模塊都在我的戰爭和JBoss上,所以我想知道:有一種方法將它們的範圍更改爲提供的,在我POM?即使他們是遺傳的?

回答

1

不,您不能更改傳遞依賴關係的範圍。您可以做的最好的做法是在您的依賴聲明中使用<exclusions>來排除這些依賴關係。

+0

但排除依賴有時可能會破壞我的代碼,不是嗎? – Montolide

+0

當然可以。但正如你所說,這些依賴關係無論如何都是由錢包提供的。我沒有說這是做事的最好方式。不幸的是,這是Maven能做的最好的。 –