我想在我的Maven2 pom.xml文件中创建一个自定义配置文件,以使用surefire插件隔离与测试相关的依赖项和设置,但我对文档感到有些困惑。最终,我不希望junit / etc出现在生产部署包中。
有没有人有一个可以让我入门的例子?
答案 0 :(得分:3)
这很简单。像这样声明junit依赖:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<scope>test</scope>
<optional>true</optional>
</dependency>
范围将确保junit库不会出现在部署包中。如果maven找到src/test/java
文件夹中的源
答案 1 :(得分:3)
你不需要这个配置文件(我的意思是,如果你真的想使用配置文件,你可以,但你不需要)。 Maven具有内置功能,允许限制依赖项的传递性,还可以影响用于各种构建任务的类路径 。此功能称为Dependency Scope,这是文档中有关 测试 范围的内容:
此范围表示正常使用应用程序不需要依赖关系,并且仅适用于测试编译和执行阶段。
因此,如果您想在测试阶段使用依赖项但又不想将其打包在最终工件中,只需使用测试范围声明它:
<project>
...
<dependencies>
...
<dependency>
<groupId>group-a</groupId>
<artifactId>artifact-b</artifactId>
<version>1.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>