向POM.xml添加依赖项时,是否可以排除主要工件本身。 换句话说,我想为我的pom添加一个依赖项,我想只下载它的依赖项,而不是主jar。
这就是我想要做的事情:
<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已添加到我的项目中,这正是我想要避免的。
我可以做些什么来解决这个问题?
答案 0 :(得分:2)
你可以简单地定义一个依赖于htmlunit
的pom而不是jar。因此,您将按如下方式定义依赖关系:
<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 jar。
答案 1 :(得分:0)
通过阅读你的问题我可以说你想添加另一个项目jar的pom文件中提到的依赖项,不包括那个jar。
你可以通过这种方式实现这一点,这里我一般显示代码根据你的要求改变各自的属性值
<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 dependency和Dependency Management