Maven中的scope作用范围总结

Maven中的scope

Maven中的scope主要有以下6种,接下来分别介绍下这几种scope:

1.compile

不声明scope元素的情况下的默认值;compile表示被依赖包需要参与当前项目的编译,包括后续的测试,运行周期也参与其中,是一个比较强的依赖;打包的时候通常需要包含进去。

2.provided

provided 类型的scope只会在项目的编译、测试阶段起作用;可以认为在目标容器中已经提供了这个依赖,无需在提供,但是在编写代码或者编译时可能会用到这个依赖;依赖不会被打入到项目jar包中。

provided 类型的scope只会在项目的编译、测试阶段起作用;可以认为在目标容器中已经提供了这个依赖,无需在提供,但是在编写代码或者编译时可能会用到这个依赖;依赖不会被打入到项目jar包中。

3.runtime

runtime与compile比较相似,区别在于runtime 跳过了编译阶段,打包的时候通常需要包含进去。

4.test

在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,不会被打包到项目jar包中,同时如果项目A依赖于项目B,项目B中的test作用域下的依赖不会被继承。

5.system

表示使用本地系统路径下的jar包,需要和一个systemPath一起使用,如下:

		<dependency>
			<groupId>xxxx</groupId>
			<artifactId>xxx</artifactId>
			<systemPath>${basedir}/lib/xxxxx.jar</systemPath>
			<scope>system</scope>
			<version>1.4.12</version>
		</dependency>

6.import

import 只能在pom文件的中使用,从而引入其他的pom文件中引入依赖,如:在Spring boot 项目的POM文件中,我们可以通过在POM文件中继承 Spring-boot-starter-parent来引用Srping boot默认依赖的jar包,如下:

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.BUILD-SNAPSHOT</version>
	</parent>

但是,通过上面的parent继承的方法,只能继承一个 spring-boot-start-parent。实际开发中,用户很可能需要继承自己公司的标准parent配置,这个时候可以使用 scope=import 来实现多继承。代码如下:

	 <dependencyManagement>
	     <dependencies>
	         <dependency>
	             <!-- Import dependency management from Spring Boot -->
	             <groupId>org.springframework.boot</groupId>
	             <artifactId>spring-boot-dependencies</artifactId>
	             <version>2.0.1.BUILD-SNAPSHOT</version>
	             <type>pom</type>
	             <scope>import</scope>
	        </dependency>
	    </dependencies>
	</dependencyManagement>

通过上面方式,就可以获取spring-boot-dependencies.2.0.1.BUILD-SNAPSHOT.pom文件中dependencyManagement配置的jar包依赖。如果要继承多个,可以在dependencyManagement中添加,如:

	 <dependencyManagement>
	     <dependencies>
	         <!-- Override Spring Data release train provided by Spring Boot -->
	         <dependency>
	             <groupId>org.springframework.data</groupId>
	             <artifactId>spring-data-releasetrain</artifactId>
	             <version>Fowler-SR2</version>
	             <type>pom</type>
	             <scope>import</scope>
	        </dependency>
	        <dependency>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-dependencies</artifactId>
	            <version>2.0.1.BUILD-SNAPSHOT</version>
	            <type>pom</type>
	            <scope>import</scope>
	        </dependency>
	    </dependencies>
	</dependencyManagement>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值