2012-01-17 39 views
1

在導入之前我的Maven項目,我建立它使用下面的命令:mvn全新安裝Maven的:罐中引用的庫,儘管有效POM沒有顯示

然後我創建必要的Eclipse的文件內容如下:MVN -Dwtpversion = 2.0日食:日食

我注意到,我引用的庫在Eclipse中包含這個jar:驗證-API 1.0.0.GA.jar

然而,當我查看Eclipse中的有效POM似乎沒有這樣的罐子。因此,我想知道如何將這個jar添加到我的Eclipse類路徑中?

我需要這個jar用於@Valid註解我正在使用,我需要Maven來注意它。如果我使用Maven構建我的類路徑文件,那麼Maven怎麼會不知道呢?

感謝

回答

1

請檢查您的pom的依賴層次標籤(在Eclipse),也許罐子你使用一些其他jar的依賴。

在這種情況下,參照的是在項目的Java構建路徑中,可能時加入該項目,因爲-Dwtpversion = 2.0 -parameter的創建。

+0

當我搜索它時,它不會出現在依賴層次結構標籤中 – DJ180 2012-01-17 18:24:14

+0

那麼如何構建路徑呢? – esaj 2012-01-17 18:29:02

+0

是的,它是在我的.classpath文件中,如果這是你所指的。我剛剛運行了一個eclipse:在那裏清理,然後是eclipse:eclipse,但它仍然出現在.classpath文件中 – DJ180 2012-01-17 18:38:06

0

您的項目依賴項之一可能對此jar文件具有依賴性。檢查圖形依賴關係圖或僅搜索該圖,找出依賴於此的項目依賴項,並在可能的情況下使用maven的「排除」標記排除此依賴項。

您可以使用Maven依賴排除,如下:

<project> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>sample.ProjectA</groupId> 
     <artifactId>Project-A</artifactId> 
     <version>1.0</version> 
     <scope>compile</scope> 
     <exclusions> 
     <exclusion> <!-- declare the exclusion here --> 
      <groupId>sample.ProjectB</groupId> 
      <artifactId>Project-B</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    </dependencies> 
</project> 

來源:Maven - Dependency Exclusions

+0

看到我下面的評論,它不會出現在依賴關係樹中。 Eclipse在哪裏獲取這種依賴關係? – DJ180 2012-01-17 18:25:47

1

的Maven還增加了到類路徑的主要依賴的子依賴(這是那些專門以聲明你在pom.xml中)。做一個

mvn dependency:tree -Dverbose 

要查看什麼其他依賴關係被拉入特定的pom聲明的依賴關係。

另外,如果你只希望看到一定的依賴性,叫某某的subdependencies你可以這樣做:

mvn dependency:tree -Dverbose -Dincludes=x.y.z 

(其中xy是groupId和z是artefactId)我也遇到過

+0

運行上述命令並且它不出現在依賴關係樹中 – DJ180 2012-01-17 18:24:59

0

一樣的問題。經過一些研究後,我意識到父pom的傳遞依賴性可能不會顯示在Effective POM中,但會出現在Reference庫中。

整個混亂提出,因爲當我運行以下命令

mvn dependency:tree -Dincludes=X(其中X是我一直在尋找罐子的組ID)

它並沒有提到父POM,而是將其提到父母的依賴關係,把X帶到了桌子上。 (這是有道理的,因爲我們從父pom繼承)。

相關問題