① 新建一个Maven工程,打包为pom方式,创建Maven父工程;
② 在子工程pom.xml文件中添加父工程的引用;
<!-- 子工程中声明父工程 --> <parent> <groupId>com.web.maven</groupId> <artifactId>Parent</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 以当前文件为基准的父工程的pom.xml文件的相对路径 --> <relativePath>../Parent/pom.xml</relativePath> </parent>
③ 将子工程中与父工程重复的坐标删除
<modelVersion>4.0.0</modelVersion> <!--公司或组织域名倒序+项目名--> <!-- <groupId>com.atguigu.maven</groupId> --> <!-- 项目名不是类名--> <artifactId>Hello</artifactId> <!-- 版本号 --> <!-- <version>0.0.1-SNAPSHOT</version> --> 只留下artifactId !!!
④ 利用父工程统一管理版本号
若是团队开发,极容易出现版本号冲突现象。可以利用父工程声明版本号,子工程继承。
父工程 pom.xml:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.4.RELEASE</version> <scope>compile</scope> </dependency>
子工程,不需要version标签:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <!-- <version>4.3.4.RELEASE</version> --> <scope>compile</scope> </dependency>
看到这里,有人可能会想。那么我在父工程中依赖了spring-core。4.3.4.RELEASE.jar,子工程是否不需要显示依赖,就可以继承使用呢?
No!!!No!!!
如下图,子工程中注释掉该jar的依赖:
Maven Dependencies 中无Spring jar包的依赖!
打开注释:
可以看到有了Spring jar,其中注释并没有打开version 与 scope。version继承了父工程的,scope默认是compile!
即,子工程的pom.xml可以如下所示:
<!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency>
只显示groupId和artifactId,默认scope为compile!!!
⑤ 利用properties标签升级版本号
如果要想版本升级呢?项目中几个框架的jar可是有几十个!即使引用父工程版本号,那么父工程也要手动改几十个!!!
下面使用properties标签:
- 在properties标签内使用自定义标签统一声明版本号
<properties> <spring.version>4.3.4.RELEASE</spring.version> </properties>
- 在需要统一版本的位置,使用${自定义标签名}引用声明的版本号
dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> <!-- <version>4.3.4.RELEASE</version> --> <scope>compile</scope> </dependency>
Tips:凡是需要统一声明后再引用的场合都可以使用这种方法!!
这样升级版本,只需要改properties标签内的值就可以!
注意:
配置继承后,执行安装命令时要先安装父工程!!!!!!
配置继承后,执行安装命令时要先安装父工程!!!!!!
配置继承后,执行安装命令时要先安装父工程!!!!!!
⑥ 聚合
作用:一键安装各个模块工程。
<!-- 配置聚合,点击run as - maven install --> <modules> <!--相对路径--> <module>../Hello</module> <module>../HelloFriend</module> <module>../MakeFriends</module> </modules>
在父工程的pom.xml文件中右键 run as - maven install 可批量安装工程。