maven依赖管理,生命周期,插件
依赖配置
依赖指当前项目运行所需的jar,一个项目可以设置多个依赖,在pom.xml中格式如下
<!--设置当前项目所依赖的所有jar-->
<dependencies>
<!--设置具体的依赖-->
<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
</dependency>
</dependencies>
依赖传递
依赖具有传递性
◆直接依赖:在当前项目中通过依赖配置建立的依赖关系
◆间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

依赖传递冲突问题:
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高,如junit在2度和3度都出现,优先采用2度的版本。
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的,如junit在2度都出现,就看他们的上一级谁先配置,哪个先就采取哪个。
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的,如在同一个pom.xml文件中出现了同一个junit,优先采用后面的那个版本。

可选依赖
可选依赖指对外隐藏当前所依赖的资源一一不透明,但实际存在。使用方式:把optional设置为true.
<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
<optional>true</optional>
</dependency>
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本一一不需要
<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
●作用范围
◆主程序范围有效(main文件夹范围内)
◆测试程序范围有效(test文件夹范围内)
◆是否参与打包(package指令范围内)

依赖范围的传递性(了解)
带有依赖范围的资源在进行传递时,作用范围将受到影响

生命周期
项目构建生命周期
Maven构建生命周期描述的是一次构建过程经历经历了多少个事件
●Maven对项目构建的生命周期划分为3套
◆clean:清理工作
◆default:核心工作,例如编译,测侧试,打包,部署等
◆site:产生报告,发布站点等



插件
1.插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
2.默认maven在各个生命周期上绑定有预设的功能
3.通过插件可以自定义其他功能
例如:下面这段代码的意思是:在generate-test-resources这个阶段,设置打包方式为jar包。
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>
黑马maven学习笔记。
maven依赖管理,生命周期,插件的更多相关文章
- Maven整理笔记の生命周期和插件
项目构建的生命周期,其实软件开发人员每天都在干这个事,即项目清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等,可以说几乎所有项目的构建都可以映射到这样一个生命周期上. Maven的插件 ...
- Maven专题3——生命周期与插件
三套生命周期 Maven有3套相互独立的生命周期,用户可以调用某个生命周期的阶段,而不会对其他生命周期产生影响. 每个生命周期包含一些有先后顺序的阶段,后面的阶段依赖于前面的阶段,意味着用户调用后面的 ...
- 介绍maven构建的生命周期
介绍maven构建的生命周期 这篇是 https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html 的 ...
- Maven的构建生命周期理解
以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命 ...
- Maven构建的生命周期
什么是构建生命周期 构建生命周期是一组阶段的序列(sequence of phases),每个阶段定义了目标被执行的顺序.这里的阶段是生命周期的一部分.举例说明,一个典型的 Maven 构建生命周期是 ...
- maven核心概念--生命周期
maven有一个命令,mvn package,该命令行并没有指定一个插件目标, 而是指定了一个Maven生命周期阶段.一个阶段是在被Maven称为"构建生命周期"中的一个步骤.生命 ...
- maven依赖管理
maven依赖管理 1.依赖范围 (依赖相当于java中的import 是否需要导入别的jar包) 使用控制依赖与三种classpath(编译期,测试时期,运行时期)的关系 complie ...
- Java-Maven-Runoob:Maven 依赖管理
ylbtech-Java-Maven-Runoob:Maven 依赖管理 1.返回顶部 1. Maven 依赖管理 Maven 一个核心的特性就是依赖管理.当我们处理多模块的项目(包含成百上千个模块或 ...
- maven 学习---Maven依赖管理
其中一个Maven的核心特征是依赖管理.管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目). Maven提供了一个高程度的控制来管理这样的场景. 传递依赖发现 这是很通常情况下 ...
- 【Tool】Windows系统安装Maven依赖管理工具
安装Maven依赖管理工具 官网下载地址:http://maven.apache.org/download.cgi 系统环境要求: [JDK]Maven3.3版本+需要JDK1.7版本以上支持 [内存 ...
随机推荐
- 题解UVA10948 The primary problem
前言 前置 \(\sf{Solution}\) 既然有了 \(n\) ,那找出 \(a\) 和 \(b\) 就只要枚举 \(a\) 的范围 \(1\sim n\),判断 \(a\) 和 \(n-a\) ...
- python中的if条件语句
# 如果...就... # 1. print('1.') if 1+1 == 2: print('1+1是等于2的') print('1+1还是等于2的') print('1+1就等于2的') # 2 ...
- Codeforces Round #832 (Div. 2) A-D
比赛链接 A 题解 知识点:贪心. 我们考虑把正数和负数分开放,显然把负数和正数放在一起的结果不会更优. 时间复杂度 \(O(n)\) 空间复杂度 \(O(1)\) 代码 #include <b ...
- day10-Tomcat02
Tomcat02 4.IDEA开发JavaWeb工程 4.1开发javaweb工程&配置Tomcat&启动项目 需求:使用idea开发javaweb工程fishWeb,并将网页部署到f ...
- chrome工具调试
项目调试的困境 程序开发总会遇到各种各样的问题,为什么实际结果和预期结果不一致? 这个时候如果能深入程序内部抽丝剥茧去一探究竟再好不过! 而chrome工具是前端开发的杀手锏,经常听到的一句话是: 出 ...
- Windows版CheatSheet——一键显示当前程序快捷键列表
Windows系统上的各种软件有太多的快捷键,想要记住是几乎不可能的,推荐一个一键显示当前软件快捷键的软件,在使用其他程序的时候,只要按下Ctrl+`就可以理解弹出该软件的所有快捷键列表,还支持收藏功 ...
- laravel 腾讯云短信发送
public function tecentSms(Request $request) { $phone = $request->input("hiphone"); $app ...
- ssh免交互
sshpass -p the_password ssh -o StrictHostKeyChecking=no root@domainname_or_ip remote_command #远程执行命 ...
- 解决windows installation failed! Error: 无法访问 Windows Installer 服务
这种错误,是因为没有开启winodws Installer这个服务导致的,在开始菜单搜索"服务",找到windows Installer 这个服务,右键--属性--把启动类型 选成 ...
- jquery操作内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...