Java pom文件中的scope标签

scope作用

scope主要是为了管理依赖的部署,确定依赖的使用范围。使用scope标签,可以很方便、直观的进行依赖的总体管理。

scope使用

compile(默认值)

缺省值,会随一起发布,打包到项目中去

provided

假定对应的依赖会由运行这个应用的JDK或者容器来提供,此依赖将参与编译、测试、运行阶段,但是不会参与到打包中去;
也就是说,它认为在运行的时候,环境中会有良好的支持,所以它不参与打包;
比如servlet包,在编译时需要,但是到了真正运行时则不需要了,因为服务器将提供这部分支持;

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.7.2</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

runtime

在运行时可用,此依赖无需参与项目编译,但是会参与项目的测试和运行,并且最终会参与打包;

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.30</version>
	<scope>runtime</scope>
</dependency>

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

test

表示被依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行;比如Junit

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

system

与provided类似,但是它不会去maven仓库寻找依赖,而是在本地找;而systemPath标签将提供本地路径

import

由maven 2.0.9新加入,只能在dependencyManagement中使用,相当于从其他pom文件中导入依赖设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值