0
点赞
收藏
分享

微信扫一扫

Maven - 父工程的使用与聚合

① 新建一个Maven工程,打包为pom方式,创建Maven父工程;

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 - 父工程的使用与聚合_父子工程_02

Maven Dependencies 中无Spring jar包的依赖!

打开注释:

Maven - 父工程的使用与聚合_版本号_03

可以看到有了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 可批量安装工程。


举报

相关推荐

0 条评论