1

如何在 ant 的 maven 任务中排除传递依赖。Scope: runtime 和 provided 在这种情况下似乎没有任何帮助。这是我的 build.xml

<artifact:remoteRepository url="https://mynexus/" id="remote.repository"/>

<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
     <dependency version="1.7.0" artifactId="commons-beanutils" groupId="commons-beanutils"/>
</artifact:dependencies>

commons-beanutils 具有我需要排除的依赖项 commons-logging。

4

2 回答 2

1

我认为 Maven 任务不支持此功能。您是否考虑过改用 Apache ivy?以下 2 个示例演示了排除功能。

cachepath任务对于管理类路径很有用

<ivy:cachepath pathid="compile.path">
  <dependency org="commons-beanutils" name="commons-beanutils" rev="1.7.0" conf="default">
    <exclude module="commons-logging"/>
  </dependency>
</ivy:cachepath>

检索任务可用于在本地下载和保存文件:

<ivy:retrieve pattern="lib/[artifact]-[revision](-[classifier]).[ext]">
  <dependency org="commons-beanutils" name="commons-beanutils" rev="1.7.0" conf="default">
    <exclude module="commons-logging"/>
  </dependency>
</ivy:retrieve>
于 2015-05-15T02:58:42.673 回答
1

maven-ant 支持此排除,请 RTFM https://maven.apache.org/ant-tasks/reference.html#exclusion

正如

<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
  <artifact:dependency version="1.7.0" artifactId="commons-beanutils" groupId="commons-beanutils">
    <exclusion groupId="commons-logging" artifactId="commons-logging">
  </<artifact:dependency>
</artifact:dependencies>

但我没有找到任何支持排除 pom 文件定义的某些依赖项

于 2015-08-07T08:34:04.267 回答