Maven3_06_Maven核心技术(2)

到现在,我们一共建了3个项目:user-dao ,user-service,user-web

通过这3个项目,这一篇主要介绍:Maven聚合与 继承特性


Maven聚合

将项目整合到一起,统一管理 

建一个Maven工程, 没有骨架的。

只需要里面的pom.xml文件就可以。

在生成的pom.xml中添加:

  <modules>
  	<module>../user-dao</module>
  	<module>../user-service</module>
  </modules>
  

将user-dao 与 user-service聚合到了一起。例如可以统一执行mvn clean等命令。

右键  run as clean

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] user-dao                                                           [jar]
[INFO] user-service                                                       [jar]
[INFO] user-aggregator                                                    [pom]
[INFO] 
[INFO] -----------------------< com.java.user:user-dao >-----------------------
[INFO] Building user-dao 0.0.1-SNAPSHOT                                   [1/3]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ user-dao ---
[INFO] Deleting C:\Users\sherlock\Documents\gao jishu\Eclipse_Photon\workspace_maven\user-dao\target
[INFO] 
[INFO] ---------------------< com.java.user:user-service >---------------------
[INFO] Building user-service 0.0.1-SNAPSHOT                               [2/3]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ user-service ---
[INFO] Deleting C:\Users\sherlock\Documents\gao jishu\Eclipse_Photon\workspace_maven\user-service\target
[INFO] 
[INFO] -------------------< com.java.user:user-aggregator >--------------------
[INFO] Building user-aggregator 0.0.1-SNAPSHOT                            [3/3]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ user-aggregator ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] user-dao ........................................... SUCCESS [  0.415 s]
[INFO] user-service ....................................... SUCCESS [  0.036 s]
[INFO] user-aggregator 0.0.1-SNAPSHOT ..................... SUCCESS [  0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.659 s
[INFO] Finished at: 2018-08-14T15:06:50+08:00
[INFO] ------------------------------------------------------------------------

3个项目都执行了  mvn clean.


Maven继承特性

管理了很多项目,每个项目pom.xml的依赖都很多,每一个依赖都有不同的版本等,这个时候版本管理也就显得很重要了。

按照上面的步骤,建一个叫  user-parent 的无骨架的项目。

可以把user-dao等项目pom.xml相同的部分抽取出来,放在parent的pom文件中。

<groupId>com.java.user</groupId>
<artifactId>user-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

 比如说上面的  除了artifactId不同其他的都一样,抽取出来

	<parent>
		<groupId>com.java.user</groupId>
  		<artifactId>user-parent</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  		<relativePath>../user-parent/pom.xml</relativePath>
	</parent>
	<artifactId>user-dao</artifactId>
	<packaging>jar</packaging>

继承parent的这些东西,不同的重写。

这个时候运行一下项目:(user.dao里面的mappers包,不要放到src/main/java下,应放到src/main/recourses下,不然会报错,以后统一都放到这个路径下

接下来,对依赖进行统一管理。

在parent的pom.xml中:

  <dependencyManagement>
  	<dependencies>
  		<!-- 放所有子项目的所有依赖 -->
  	</dependencies>
  </dependencyManagement>

这个时候子项目的版本信息就可以不用写了,这样方便了统一管理版本信息。

把重复的可以去掉。这样就可以实现所有子项目版本的一致。

而在parent的pom.xml文件中,不如spring的jar包有很多,版本信息一样,当我们要修改时,就必须把所有的都要更改,这个时候我们可以在进行抽取:

 <properties>
  	<spring.version>4.1.7.RELEASE</spring.version>
  </properties>

在下面spring版本信息出现的地方全都用定义的参数代替:

<version>${spring.version}</version>

原则上我们要把全部版本信息全抽取出来,方便统一管理。


继承和聚合可以放在一起的:

将:

 <!-- 聚合 -->
   <modules>
  	<module>../user-dao</module>
  	<module>../user-service</module>
  </modules>

 放到parent.xml中即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值