| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> maven scope -> 正文阅读 |
|
[Java知识库]maven scope |
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的继承一样,是无法实现多重继承的
非继承引入依赖:可引入多个模块依赖
依赖范围总结scope的依赖传递A–>B–>C。A依赖于B,B依赖于C。A和C的依赖关系: 一张依赖传递图(感觉直接依赖compile和间接依赖runtime的结果不太对): ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 15:20:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |