zoukankan      html  css  js  c++  java
  • (六)maven 聚合和继承

    项目目录

     my_test 聚合pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.mylove</groupId>
        <name>my_test</name><!--提供一个更容易阅读的名称,没什么其他太大作用。-->
        <artifactId>my_test</artifactId>
        <packaging>pom</packaging><!--packaging的类型必须为pom,否则无法构建。-->
        <version>1.0-SNAPSHOT</version>
        <!--这是实现聚合的标签,其下可包含多个module元素。-->
        <modules>
            <module>parent</module><!--父模块放前面-->
            <module>son</module>
        </modules>
    
        <!--聚合模块下的内容只需要POM文件,它不像其他模块那样有src/main/java、src/test/java等目录。
            他只是用来帮助聚合其他模块构建,他本身并不会有过多的实质内容。
            关于目录结构要注意的是,聚合模块既可以作为其他模块的父目录,也可以与其他模块处于平行的目录
            如果使用平行目录,聚合模块的POM要做相应的修改,以指向正确的模块目录:
            <module>../parent</module>
            <module>../log/pom-pack.xml</module>-->
    </project>

    新建module

     parent 父pom  新建之后要修改

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <groupId>com.mylove</groupId>
        <version>1.0-SNAPSHOT</version>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>parent</artifactId>
        <packaging>pom</packaging>
        <dependencies>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>7.1.0</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </project>

    子pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>parent</artifactId>
            <groupId>com.mylove</groupId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../parent</relativePath>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>son</artifactId>
    
    
    </project>

    可继承的POM元素

    groupIdversion是可以被继承的,那么还有哪些POM元素可以被继承呢?以下是一个完整的列表,并附带了简单的说明:

    • groupId :项目组 ID ,项目坐标的核心元素;
    • version :项目版本,项目坐标的核心元素;
    • description :项目的描述信息;
    • organization :项目的组织信息;
    • inceptionYear :项目的创始年份;
    • url :项目的 url 地址;
    • develoers :项目的开发者信息;
    • contributors :项目的贡献者信息;
    • distributionManagerment :项目的部署信息;
    • issueManagement :缺陷跟踪系统信息;
    • ciManagement :项目的持续继承信息;
    • scm :项目的版本控制信息;
    • mailingListserv :项目的邮件列表信息;
    • properties :自定义的 Maven 属性;
    • dependencies :项目的依赖配置;
    • dependencyManagement :醒目的依赖管理配置;
    • repositories :项目的仓库配置;
    • build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;
    • reporting :包括项目的报告输出目录配置、报告插件配置等。

     

    有关版本的简单说明

    对于用过svn或者cvs的朋友们,都会知道,每次修改都会提交一个版本到服务器上,对于我们平常所搭建的项目,大家可能没有注意到版本这个概念。其实版本对于叠加式开发的项目是个很重要的概念,通过上面的依赖,我们就可以清楚地看到一个version,这个就是引入依赖包的版本。

    那么版本一共可以分为几个层次,一般来说,版本可以分为:总版本号.分支版本号.小版本号-里程碑版本。

    • 总版本号:一般表示框架的变动。
    • 分支版本号:一般表示增加了一些功能。
    • 小版本号:在分支版本上面进行bug的修复。
    • 里程碑:SNAPSHOT–>alpha–>beta–>release–>GA
    <!--父模放前面-->
  • 相关阅读:
    java中为什么notify()可能会导致死锁,而notifyAll()则不会
    java中wait()和sleep()的区别;notify()和notifyall()区别
    你不知道的Golang盲点汇总【持续更新】
    rsync性能终极优化【Optimize rsync performance】
    基于cephfs搭建高可用分布式存储并mount到本地
    检测代码潜在bug和质量之SonarQube
    玩透二叉树(Binary-Tree)及前序(先序)、中序、后序【递归和非递归】遍历
    好用到哭!8个技巧让Vim菜鸟变专家
    Golang fmt Printf 格式化参数手册/详解/说明
    淘宝滑动验证码研究
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12901010.html
Copyright © 2011-2022 走看看