九.Maven的聚合和继承,一般都使用方法二(聚合和继承可以放在一个pom.xml中,如:/parent-mavne/pom.xml)

    1.聚合:n多个项目聚合在一个pom.xml文件中,对这个pom进行test,package等mav命令时,n多个项目会同时执行这些命令,不用每个项目分别执行这些命令。
           聚合pom.xml必须,方法1和2都要有的
                    <modelVersion>4.0.0</modelVersion>  
                    <groupId>mymaven</groupId>  
                    <artifactId>aggregator-maven</artifactId>  
                    <version>1.0.0-SNAPSHOT</version>  
                    <packaging>pom</packaging>  
           方法1:多个模块的同级(根目录)下新建pom.xml,加入
                   <modules>
                        <!-- 相对于此pom.xml的路径 -->
                        <module>./模块1的跟文件夹</module>
                        <module>./模块2的跟文件夹</module>
                        <module>./模块3的跟文件夹</module>
                   </modules>
            方法2:新建一个Maven项目,可以是简单Maven项目,在跟目录下新建pom.xml,如:
                  /parent-maven/pom.xml,加入
                  <modules>
                        <!-- 相对于此pom.xml的路径 -->
                        <module>../模块1的跟文件夹</module>
                        <module>../模块1的跟文件夹</module>
                        <module>../模块1的跟文件夹</module>
                   </modules>


    2.继承:n个pom.xml相同的类容可以放在一个pom.xml中,然后这用n个pom.xml来指定父pom.xml继承,修改父pom.xml后,必须发布到仓库,子pom才能继承最新的父pom
            1.父pom.xml必须,方法1和2都要有的
            <modelVersion>4.0.0</modelVersion>  
            <groupId>mymaven</groupId>  
            <artifactId>parent-maven</artifactId>  
            <version>1.0.0-SNAPSHOT</version>  
            <packaging>pom</packaging>  
            方法1:多个模块的根目录下新建pom.xml,加入通用代码,父pom项目必须发布到仓库,子才能找到
                  子pom.xml开头加入:
                  <parent>
                    <groupId>mymaven</groupId>
                    <!-- 父类模块名 -->
                    <artifactId>parent-maven</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                    <!-- 父pom.xml的相对路径,相对于此pom.xml的路径 -->
                    <relativePath>../pom.xml</relativePath>
                </parent>
            方法2:新建一个Mavne项目,可以是简单Maven项目,在跟目录下新建pom.xml,如:
                  /parent-mavne/pom.xml,加入通用代码
                  子pom.xml开头加入:
                  <parent>
                    <groupId>mymaven</groupId>
                    <!-- 父类模块名 -->
                    <artifactId>parent-maven</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                    <!-- 父pom.xml的相对路径,相对于此pom.xml的路径 -->
                    <relativePath>../parent-maven/pom.xml</relativePath>
                </parent>
            relativePath的默认值为:../pom.xml,不管有没有值,寻找父pom.xml的顺序为:
                1.先在../pom.xml寻找
                2.再在仓库中寻找
                3.再在relativePath的值寻找
            依赖继承的管理:父pom.xml文件加入通用依赖
                            dependencyManagement标签并不会使用管理的依赖
                            <dependencyManagement>
                                <dependencies>
                                    <dependency>
                                        <!-- log4j -->
                                        <dependency>
                                            <groupId>log4j</groupId>
                                            <artifactId>log4j</artifactId>
                                            <version>1.2.17</version>
                                        </dependency>
                                        <!-- mysql -->
                                        <dependency>
                                            <groupId>mysql</groupId>
                                            <artifactId>mysql-connector-java</artifactId>
                                            <version>5.0.4</version>
                                        </dependency>
                                        <!-- ..其他依赖.. -->
                                        ........
                                    </dependency>
                                </dependencies>
                            </dependencyManagement> 
                            子pom.xml需要继承哪个依赖,除了版本,其他都要写。(写了版本的依赖表示自己的不是从父继承来的)
                            <dependencies>
                                <dependency>
                                    <!-- 只继承mysql,不写版本 -->
                                    <dependency>
                                        <groupId>mysql</groupId>
                                        <artifactId>mysql-connector-java</artifactId>
                                    </dependency>
                                    <!-- ..其他依赖.. -->
                                    ........
                                </dependency>
                            </dependencies>
            2.mavne可被继承的pom元素
                groupId :项目组 ID ,项目坐标的核心元素;
                version :项目版本,项目坐标的核心元素;
                description :项目的描述信息;
                organization :项目的组织信息;
                inceptionYear :项目的创始年份;
                url :项目的 url 地址
                develoers :项目的开发者信息;
                contributors :项目的贡献者信息;
                distributionManagerment :项目的部署信息;
                issueManagement :缺陷跟踪系统信息;
                ciManagement :项目的持续继承信息;
                scm :项目的版本控制信息;
                mailingListserv :项目的邮件列表信息;
                properties :自定义的 Maven 属性;
                dependencies :项目的依赖配置;
                dependencyManagement :醒目的依赖管理配置;
                repositories :项目的仓库配置;
                build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;
                reporting :包括项目的报告输出目录配置、报告插件配置等。
            3.dependencyManagement和pluginManagement:都是间接继承,父类并不会真正使用解析里面的内容,当子类写入groupId和artifactId才会真正继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值