maven的核心概念——继承
15.1 为什么需要继承机制
由于非compile范围的依赖信息是不能在“依赖链”中传递的,所以有需要的工程只能单独配置。例如:
Hello <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> HelloFriend <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> MakeFriend <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency>
此时如果项目需要将各个模块的junit版本统一为4.9,那么到各个工程中手动修改无疑是非常不可取的。使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。
15.2 创建父工程
创建父工程和创建一般的Java工程操作一致,唯一需要注意的是:打包方式处要设置为pom。
15.3 在子工程中引用父工程
<parent> <!-- 父工程坐标 --> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <relativePath>从当前目录到父项目的pom.xml文件的相对路径</relativePath> </parent>
<parent> <groupId>com.atguigu.maven</groupId> <artifactId>Parent</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 指定从当前子工程的pom.xml文件出发,查找父工程的pom.xml的路径 --> <relativePath>../Parent/pom.xml</relativePath> </parent>
此时如果子工程的groupId和version如果和父工程重复则可以删除。
15.4 在父工程中管理依赖
将Parent项目中的dependencies标签,用dependencyManagement标签括起来
<dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement>
在子项目中重新指定需要的依赖,删除范围和版本号
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies>
maven的核心概念——继承的更多相关文章
- 理解maven的核心概念
原文出处:http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 好久没进行java方面的开发了,最近又完成了一个java相关的 ...
- maven的核心概念
1 简单的核心概念 1.1 坐标 groupId.artifactId.version,很简单,这三个坐标定位到了该依赖的位置,有了它们就可以下载该依赖了. 1.2 依赖 如果一个jar包使用了另外一 ...
- Maven学习(四)-- Maven的核心概念
摘自:http://www.cnblogs.com/xdp-gacl/p/4051819.html 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1. ...
- maven的核心概念——生命周期
第十一章生命周期 11.1 什么是Maven的生命周期 ●Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了. ●Maven有三套相互独立的生命周期, ...
- Maven入门-2.Maven一些核心概念介绍
1.Maven仓库2.Maven坐标3.Maven插件和目标4.Maven生命周期4.1 clean:清理项目4.2 default:构建项目(重要)4.3 site:建立项目站点 1.Maven仓库 ...
- Maven 梳理 - 核心概念
Maven坐标 依赖配置 依赖范围 依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下: 1.compile: 默认编译依赖范围.对于编译,测试,运 ...
- maven的核心概念——依赖
一.STS集成maven(以下是mac版的STS) 1.点击Spring Tool Suite,点击preferences maven中的installations 点击add,选择对应的路径即可 点 ...
- maven的核心概念——POM
Project Object Model:项目对象模型.将Java工程的相关信息封装为对象作为便于操作和管理的模型.Maven工程的核心配置.可以说学习Maven就是学习pom.xml文件中的配置. ...
- maven的核心概念——创建war工程
第十七章第四个Maven工程(war工程) 17.1 创建步骤 ①第一步:创建maven web工程 ②第二步:修改web.xml <?xml version="1.0" e ...
随机推荐
- 快速理解DevOps概念和意义-兼谈SRE
最近几年,由于负责的范围的变化.工作逐渐从某个IT领域或者部门,开始关注到整个IT体系的运转和管理.中间也遇到不少困难,同时也有机会去从更高的层面去学习和实践IT治理.文章主要是总结一下我对DevOp ...
- 基于HTTPS的接口测试——nginx配置SSL
目录 基于HTTPS的接口测试--nginx配置SSL 1. 背景 2. 所需环境与域名备案解析 2.1 云服务器 2.2 域名 2.3 SSL证书 2.4 网站备案 2.5 域名解析 3.nginx ...
- java核心技术----Object类
package java.lang; /** * Class {@code Object} is the root of the class hierarchy. * Every class has ...
- SDL初始化和创建窗口
//初始化SDL2和创建一个窗口,并且将屏幕绘制成大红色 #include <iostream> extern "C" { #include <SDL.h> ...
- Qt qApp
qApp A global pointer referring to the unique application object. It is equivalent to the pointer re ...
- @ComponentScan注解,basePackages参数通配符
@ComponentScan(basePackages = "com.ofo.test")当basePackages的直使用通配符,使用**,不能使用*.引用:https://bl ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Scala 学习(9)之「函数式编程」
引用透明 对相同的输入,总是能得到相同的输出. 如果 f(x) 的参数 x 和函数体都是引用透明的,那么函数 f 是纯函数. 违反引用透明的例子 我们可以很清楚的看到,对于相同的输入,第二次调用app ...
- input . type=number.使用后问题点
所有主浏览器都支持type属性,但是,并非所有主流浏览器都支持所有不同的 input 类型. 以下 input 类型是 HTML5 中的新类型:color.date.datetime.datetime ...
- CSS实现按钮点击后根据背景色加深效果-一颗优雅草bigniu
具体代码如下 button{ position: relative; } button:active::before { display: block; content: ''; position: ...