maven聚合与继承

来源:互联网 发布:无损音乐播放软件 编辑:程序博客网 时间:2024/05/21 15:05
8.2聚合
为了能够一条命令构建A-1,A-2,A-3多个模块,我们需要新建一个A-aggregator模块,然后通过该模块构建整个项目的所有模块。
A-aggregator本身作为一个maven项目,有自己的pom,同时作为一个聚合项目。
<project>    <modleVersion>4.0.0</modleVersion>    <version>1.0.0-SNAPSHOT</version>    <groupId>com.shusheng.demo</gourpId>    <artifactId>A-aggregator</artifactId>    <packaging>pom</packaging>    <name>A aggregator</name>    <modules>        <module>A-1</module>        <module>A-2</module>        <module>A-3</module>    </modules></project>


上面配置版本与其他两个模块版本一致,对于聚合模块来说,其packaging必须配置为pom,否则无法构建。


8.3继承
面向对象设计中,程序员可以建立一种父子结构,然后在父类中声明一些字段和方法供子类继承,这样就可以做到一出声明,多处使用。
在>A-aggregator下创建一个A-parent的子目录,然后在该子目录下建立一个所有除A-aggregator之外模块的父模块。为此在该子目录下创建一个pom.xml
<project>
    <modleVersion>4.0.0</modleVersion>
    <version>1.0.0-SNAPSHOT</version>
    <groupId>com.shusheng.demo</gourpId>
    <artifactId>A-parent</artifactId>
    <packaging>pom</packaging>
    <nameA parent</name>
</project>
该pom很简单,它使用与其他模块一致的goupId和version,packaging为pom,这一点与聚合模块一样,作为父模块的pom,其打包类型也必须为pom
由于父模块职位消除配置的重复,因此它本身不包含出pom之外的项目文件,也就不需要src/main/java之类的文件了
A-1子模块的pom修改如下:
<project>    <modleVersion>4.0.0</modleVersion>    <parent>          <version>1.0.0-SNAPSHOT</version>         <groupId>com.shusheng.demo</gourpId>         <artifactId>A-parent</artifactId>         <relativePath>../A-parent/pom.xml</relativePath>    </parent>    <artifactId>A-1</artifactId>    <packaging>pom</packaging>    <nameA 1</name></project>A-aggregator配置修改:<project>    <modleVersion>4.0.0</modleVersion>    <version>1.0.0-SNAPSHOT</version>    <groupId>com.shusheng.demo</gourpId>    <artifactId>A-aggregator</artifactId>    <packaging>pom</packaging>    <name>A aggregator</name>    <modules>        <module>A-1</module>        <module>A-2</module>        <module>A-3</module>        <module>A-parent</module>    </modules></project>


8.3.2可集成的pom元素:
groupId:项目组Id,项目坐标核心元素
version:项目版本,项目坐标核心元素
description:项目的描述
organization:项目的组织信息
inceptionYear:项目创建的年份
url:项目的url地址
developers:项目的开发者信息
contributors:项目的贡献这信息
distribution:项目的部署配置
issueManagement:项目的缺陷跟踪系统信息
ciManagement:项目的持续集成系统信息
sem:项目的版本控制系统信息
mailingLists:项目邮件列表信息
porperties:自定义的maven属性
dependencies:项目的依赖配置
dependencyManagement:项目以来管理配置
repositories:项目仓库配置
build:包括项目的源码目录配置,输出目录配置,插件配置,插件管理配置等
reporting:包括项目的报告输出目录配置,报告插件配置等。
8.3.3以来管理
将版本号声明为常量
<project>    <modleVersion>4.0.0</modleVersion>    <version>1.0.0-SNAPSHOT</version>    <groupId>com.shusheng.demo</gourpId>    <artifactId>A-parent</artifactId>    <packaging>pom</packaging>    <name>A parent</name>    <properties>        <springframework.version>4.7</springframework.version>        <junit.version>4.11</junit.version>    </properties>    <dependencyManagement>        <dependencies>            <dependency>                 <groupId>org.springframework</gourpId>                 <artifactId>spring-core</artifactId>                 <version>${springframework.version}</version>            </dependency>        </dependencies>    </dependencyManagement></project>







原创粉丝点击