Maven依赖中的<scope>标签的作用

管理依赖的部署,分别有:

1、<scope>compile</scope>,compile默认,不写时默认就是<scope>compile</scope>,表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。

2、<scope>test</scope>,表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。

<scope>test</scope> 是 Maven 中的一个依赖范围,它表示该依赖只在执行测试时使用。通常,这是用于 JUnit 和其他测试框架的。

解决方案:

如果你需要在测试范围内添加依赖,你只需要在你的 pom.xml 文件中的 <dependencies> 部分添加 

<scope>test</scope> 就可以了。例如,如果你想要添加 JUnit 作为测试依赖,你可以这样写:

        <!--单元测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

 在这个例子中,JUnit 只会在运行测试的时候被使用,而不会在编译或者打包你的应用的时候被使用。

3、<scope>runntime</scope>,表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。

4、<scope>provided</scope>,表示打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。

5、<scope>system</scope>

猜你喜欢

转载自blog.csdn.net/BillKu/article/details/143052798