Maven学习笔记(三):Maven的聚合和继承
2014-07-24 18:23
323 查看
Maven的聚合其实就是把各个项目拷贝到一个项目里,便于统一构建(这种是父子目录结构构件,个人喜欢这种,平行结构不喜欢),实现聚合的方式为:
-- 新建一个普通的Maven项目,只保留pom文件,其他的目录结构都删除
-- 配置新建项目的pom文件:
-- 将要聚合的子项目拷贝入当前聚合项目
-- 对聚合项目执行mvn clean install 就可以构件所有的子项目了。
Maven的继承和Java的继承差不多,但是也有比较明显的区别。首先要实现继承,需要在pom文件中配置被继承的pom。
这样配置后,父项目的pom文件就被当前项目继承了。那么,到底继承下来了什么东西呢?有两个,①依赖管理 ②插件管理
在父项目的pom文件中使用<dependencyManagement>来指定依赖规范:
在<dependencyManagement>中定义的依赖规范会被继承下来,但是并不等于这些依赖都会被继承下来,只有在子项目中再次显式定义了<dependencyManagement>中所具有的某个依赖时,这个依赖才会生效。也就是说,<dependencyManagement>中定义的是依赖规范,它规范了子项目能够使用哪些依赖,这些依赖的版本是多少,而不是强制要求子项目必须要实现这些依赖。这是和Java继承的明显区别。
至于插件管理和依赖管理类似,就不赘述了。
-- 新建一个普通的Maven项目,只保留pom文件,其他的目录结构都删除
-- 配置新建项目的pom文件:
<project ...> <modelVersion>4.0.0</modelVersion> <groupId>XXXX</groupId> <artifactId>XXXX</artifactId> <version>1.0.0-SNAPSHOT</version> <!-- 作为聚合项目,packaging必须为pom --> <packaging>pom</packaging> <name>XXXX</name> <modules> <module>聚合项目1[注意路径匹配]</module> <module>聚合项目2[注意路径匹配]</module> </modules> </project
-- 将要聚合的子项目拷贝入当前聚合项目
-- 对聚合项目执行mvn clean install 就可以构件所有的子项目了。
Maven的继承和Java的继承差不多,但是也有比较明显的区别。首先要实现继承,需要在pom文件中配置被继承的pom。
<project ...> <modelVersion>4.0.0</modelVersion> <parent> <groupId>XXXX</groupId> <artifactId>XXXX</artifactId> <version>XXXX</version> <relativePath>指定要继承的父项目的pom文件的相对路径</relativePath> </parent> .... </project>
这样配置后,父项目的pom文件就被当前项目继承了。那么,到底继承下来了什么东西呢?有两个,①依赖管理 ②插件管理
在父项目的pom文件中使用<dependencyManagement>来指定依赖规范:
<properties> <springframework.version>2.5.6</springframework.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${springframework.version}</version> </dependency> </dependencyManagement>
在<dependencyManagement>中定义的依赖规范会被继承下来,但是并不等于这些依赖都会被继承下来,只有在子项目中再次显式定义了<dependencyManagement>中所具有的某个依赖时,这个依赖才会生效。也就是说,<dependencyManagement>中定义的是依赖规范,它规范了子项目能够使用哪些依赖,这些依赖的版本是多少,而不是强制要求子项目必须要实现这些依赖。这是和Java继承的明显区别。
至于插件管理和依赖管理类似,就不赘述了。
相关文章推荐
- maven聚合与继承<一>
- Maven实战(六)--子模块的聚合和继承
- maven聚合与继承实践
- maven项目的继承和聚合实例
- maven中的继承和聚合的关系
- Maven聚合与继承
- Maven详解之聚合与继承
- maven项目管理之-09-聚合和继承
- maven pom聚合与继承
- Maven详解之聚合与继承
- maven之聚合和继承
- maven(八)继承和聚合
- 【maven】---聚合和继承
- Maven的使用《二》之依赖、继承、聚合
- 项目管理利器(Maven)——继承和聚合
- 04_Maven核心_POM_聚合与继承
- Maven实战 第8章聚合与继承
- Maven学习总结(5)——聚合与继承
- maven的继承与聚合
- maven的pom.xml之聚合、继承、依赖