1

向 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.xml 中。

我尝试了上述方法,似乎 htmlunit-2.12.jar 已添加到我的项目中,这正是我想要避免的。

我能做些什么来解决这个问题?

4

2 回答 2

2

您可以简单地定义对htmlunit's 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。

于 2013-10-09T12:30:38.077 回答
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 and Dependency Management

于 2013-10-09T12:43:48.757 回答