2012-01-17 26 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继承)。

相关问题