我有声明依赖项 A、B 和 C 的 pom。是否可以创建一个删除依赖项的配置文件,以便当我使用该配置文件编译时,我最终会得到例如编译的依赖项 A 和 B(没有 C)?
问问题
6125 次
2 回答
15
我不知道如何在配置文件中排除顶级依赖项(<exlusions>
仅适用于传递依赖项)。但是您可以在默认配置文件中指定“正常”依赖项,并在单独的配置文件中指定减少的依赖项,例如:
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>excludeDependency</id>
<dependencies>
</dependencies>
</profile>
</profiles>
如果您在某处使用 log4j,使用“excludeDependency”配置文件编译将失败。
于 2012-12-11T12:11:25.827 回答
3
在 Maven 中,配置文件是对基本配置文件的附加,所以我发现这种使用模式有利于排除依赖项:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
<profiles>
<profile>
<id>Exclude</id>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
然后通过更改要测试的范围来“排除”依赖项。不适合所有用途,但只是作为另一种选择。
于 2015-03-12T11:16:17.780 回答