2013-10-09 123 views
1

当添加依赖于一个pom.xml排除主神器本身,是否可以排除主神器本身。 换句话说,我想添加一个依赖到我的POM,我只想下载它的依赖关系,而不是主jar。Maven的:从依赖

这就是我想做的事:

<dependency> 
    <groupId>net.sourceforge.htmlunit</groupId> 
    <artifactId>htmlunit</artifactId> 
    <version>2.12</version> 
    <exclusions> 
     <exclusion> 
      <groupId>net.sourceforge.htmlunit</groupId> 
      <artifactId>htmlunit</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

我知道这可能看起来很奇怪,但我确实在我的源文件夹中有化的HtmlUnit项目的修改版本,什么我真正想要的只是它依赖的库而不必将它们全部添加到我的POM中。

我尝试了上面,似乎化的HtmlUnit-2.12.jar添加到我的项目,而这正是我想避免的。

什么我可以做些什么来解决此问题?

回答

2

您可以简单地定义一个依赖于htmlunit的POM,而不是罐子。所以,你会定义依赖如下:

<dependencies> 
    <dependency> 
     <groupId>net.sourceforge.htmlunit</groupId> 
     <artifactId>htmlunit</artifactId> 
     <version>2.12</version> 
     <type>pom</type> 
    </dependency> 
    <!-- other project dependencies go here --> 
</dependencies> 

然后,您将获得包含在你的项目中传递性的POM中定义的所有依存关系,但罐子的HtmlUnit将不包括在内。

0

通过阅读你的问题,我可以说,你想要增加在排除罐中的其他项目的jar的POM文件中提到的依赖关系。

您可以通过这种方式实现这一目标,我在这里表现出一般更改相应的属性值的代码按您的要求

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>other.pom.group.id</groupId> 
      <artifactId>other-pom-artifact-id</artifactId> 
      <version>SNAPSHOT</version> 
      <scope>import</scope> 
      <type>pom</type> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

Maven的网站上有这个依赖管理一个更好的说明,请参阅本Importing dependencyDependency Management

+0

这只会增加依赖于'dependencyManagement'部分。它们不是显式的项目依赖项 - 即不会在构建时包含在项目的类路径中。您仍然需要在pom的''dependencies>'部分列出所有必需的依赖关系。 – DB5