我遇到了一个小问题,我在项目中添加了下一个依赖项:
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.19</version>
</dependency>
我的项目从 330kb 扩大到 12.1mb 。我知道基于Apache Http Client的HTMLUnit权重很大,但Maven有一些功能可以排除源代码中没有使用的库/包吗? (不是手动排除)
答案 0 :(得分:2)
Maven应该怎么知道?您可能在运行时使用某种DI?如果您知道它们没有被使用,您当然可以exclude dependencies ...当然,正如已经提到的那样,为了它们的目的处理正确的依赖项,如果它只是用于测试的话,则使用<scop>test</scope>
。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
...
<dependencies>
<dependency>
<groupId>sample.ProjectB</groupId>
<artifactId>Project-B</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>sample.ProjectD</groupId>
<artifactId>Project-D</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
答案 1 :(得分:1)
由于这是一个测试依赖项,因此您始终可以添加<scope>test</scope>
以防止它在您的构建中打包。