您现在的位置是:主页 > news > 网站域名查询网址/临沂网站建设

网站域名查询网址/临沂网站建设

admin2025/6/24 11:28:45news

简介网站域名查询网址,临沂网站建设,网站上面的水印怎么做,在线做头像scope作用:决定 dependency 的jar的作用范围。即控制 Jar 包在哪些周期被加载和使用。 项目周期:编译、测试、打包、运行。 编译和运行也可分为:测试代码的编译和运行、非测试代码的编译和运行。一般情况下,编译和运行是指非测试…

网站域名查询网址,临沂网站建设,网站上面的水印怎么做,在线做头像scope作用:决定 dependency 的jar的作用范围。即控制 Jar 包在哪些周期被加载和使用。 项目周期:编译、测试、打包、运行。 编译和运行也可分为:测试代码的编译和运行、非测试代码的编译和运行。一般情况下,编译和运行是指非测试…

scope作用:决定 dependency 的jar的作用范围。即控制 Jar 包在哪些周期被加载和使用。

项目周期:编译、测试、打包、运行。

编译和运行也可分为:测试代码的编译和运行、非测试代码的编译和运行。一般情况下,编译和运行是指非测试代码的编译和运行,测试是指测试代码的编译和运行。

打包:一般情况下,指的是mvn package且打包格式是war之类(附带依赖包的),非默认的jar。

scope取值:compile、test、runtime、provided、system、import。

scope默认值:compile。

compile

什么都不配置,默认值compile。

作用范围:编译、测试、打包、运行。

依赖传递:会传递到依赖的上层项目中。

test

作用范围:测试。

依赖传递:不会传递依赖。

runtime

作用范围:测试、打包、运行。

依赖传递:会传递。

provided

作用范围:编译、测试。

依赖传递:不会传递依赖。

provided意味着打包的时候不会包进去,在打包阶段做了exclude的动作,别的容器(Web Container)会提供。

system

不推荐使用。也provided类似,但是maven不会在repository查找,而是从本地文件系统拿,一定要配合systemPath属性使用。

import(Maven 2.0.9 之后新增)

import只使用在<dependencyManagement>中,表示从其它的pom中导入dependency的配置。用处:非继承的方式依赖多个模块。

继承引入依赖:<parent> 只能声明一个,Maven的继承和Java的继承一样,是无法实现多重继承的

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.6</version></parent>

非继承引入依赖:可引入多个模块依赖

<dependencyManagement><dependencies><dependency><groupId>com.yzh</groupId><artifactid>test-parent1</artifactId><version>1.0.0-SNAPSHOT</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.yzh</groupId><artifactid>test-parent2</artifactId><version>1.0.0-SNAPSHOT</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

依赖范围总结

scope的依赖传递

A–>B–>C。A依赖于B,B依赖于C。A和C的依赖关系:
当C的scope是test或者provided时,C直接被丢弃,A不依赖C;
否则A依赖C,C的scope继承自B的scope,即B的scope是什么,C在A中的scope就是什么。

一张依赖传递图(感觉直接依赖compile和间接依赖runtime的结果不太对):

依赖传递时scope的计算