码迷,mamicode.com
首页 > 其他好文 > 详细

Maven学习笔记(三):Maven的聚合和继承

时间:2014-07-24 22:21:12      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:style   blog   java   color   使用   文件   io   art   

Maven的聚合其实就是把各个项目拷贝到一个项目里,便于统一构建(这种是父子目录结构构件,个人喜欢这种,平行结构不喜欢),实现聚合的方式为:

-- 新建一个普通的Maven项目,只保留pom文件,其他的目录结构都删除

-- 配置新建项目的pom文件:

 1 <project ...>
 2     <modelVersion>4.0.0</modelVersion>
 3     <groupId>XXXX</groupId>
 4     <artifactId>XXXX</artifactId>
 5     <version>1.0.0-SNAPSHOT</version>
 6     <!-- 作为聚合项目,packaging必须为pom -->
 7     <packaging>pom</packaging>
 8     <name>XXXX</name>
 9     <modules>
10         <module>聚合项目1[注意路径匹配]</module>
11         <module>聚合项目2[注意路径匹配]</module>
12     </modules>
13 </project

-- 将要聚合的子项目拷贝入当前聚合项目

-- 对聚合项目执行mvn clean install 就可以构件所有的子项目了。

 

Maven的继承和Java的继承差不多,但是也有比较明显的区别。首先要实现继承,需要在pom文件中配置被继承的pom。

 1 <project ...>
 2     <modelVersion>4.0.0</modelVersion>
 3 
 4     <parent>
 5         <groupId>XXXX</groupId>
 6         <artifactId>XXXX</artifactId>
 7         <version>XXXX</version>
 8         <relativePath>指定要继承的父项目的pom文件的相对路径</relativePath>
 9     </parent>
10 
11     ....
12 </project>

这样配置后,父项目的pom文件就被当前项目继承了。那么,到底继承下来了什么东西呢?有两个,①依赖管理   ②插件管理

在父项目的pom文件中使用<dependencyManagement>来指定依赖规范:

 1 <properties>
 2         <springframework.version>2.5.6</springframework.version>
 4 </properties>
 5     <dependencyManagement>
 6         <dependencies>
 7             <dependency>
 8                 <groupId>org.springframework</groupId>
 9                 <artifactId>spring-core</artifactId>
10                 <version>${springframework.version}</version>
11             </dependency>
12             <dependency>
13                 <groupId>org.springframework</groupId>
14                 <artifactId>spring-beans</artifactId>
15                 <version>${springframework.version}</version>
16             </dependency>
17             <dependency>
18                 <groupId>org.springframework</groupId>
19                 <artifactId>spring-context</artifactId>
20                 <version>${springframework.version}</version>
21             </dependency>
22     </dependencyManagement>

在<dependencyManagement>中定义的依赖规范会被继承下来,但是并不等于这些依赖都会被继承下来,只有在子项目中再次显式定义了<dependencyManagement>中所具有的某个依赖时,这个依赖才会生效。也就是说,<dependencyManagement>中定义的是依赖规范,它规范了子项目能够使用哪些依赖,这些依赖的版本是多少,而不是强制要求子项目必须要实现这些依赖。这是和Java继承的明显区别。

至于插件管理和依赖管理类似,就不赘述了。

Maven学习笔记(三):Maven的聚合和继承,布布扣,bubuko.com

Maven学习笔记(三):Maven的聚合和继承

标签:style   blog   java   color   使用   文件   io   art   

原文地址:http://www.cnblogs.com/jasongan/p/3866274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!