<Scope> test </scope>和<Scope> Compile </Scope>有什么区别?

时间:2019-11-16 13:19:24

标签: maven

我正在使用以下依赖项,如果我将范围更改为可编译,会产生什么影响?

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>7.0.0.jre8</version>
    <scope>test</scope>
</dependency>

1 个答案:

答案 0 :(得分:0)

具有测试范围的依赖项将不包含在最终版本中。假设您正在构建战争文件,并且编写了一些junit测试。按照Maven约定,您的测试位于src / main / test文件夹中。在pom.xml中,将junit依赖项包含在测试范围中。当您运行mvn package目标时,将执行测试。在测试阶段,maven使用junit jar并编译测试类,但junit jar将不包含在最终的war文件中。如果将junit范围更改为可编译,则junit依赖关系将在测试阶段可用,并且还将包含在最终的war文件中。