Maven - 父工程的使用与聚合

① 新建一个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.web.maven</groupId> -->
	<!-- 项目名不是类名-->
	<artifactId>Hello</artifactId>
	<!-- 版本号 -->
<!-- 	<version>0.0.1-SNAPSHOT</version> -->

只留下artifactId !!!

④ 利用父工程统一管理版本号

若是团队开发,极容易出现版本号冲突现象。可以利用父工程声明版本号,子工程继承。

父工程 pom.xml,dependencyManagement用来管理版本号,子工程需要声明依赖引入但是不需要显式声明版本号。

<dependencyManagement>
	<dependencies>
	...
		<dependency> 
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.3.4.RELEASE</version> 
			<scope>compile</scope>
		</dependency>		
	...
	</dependencies>
</dependencyManagement>

子工程,不需要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 可批量安装工程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流烟默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值