zoukankan      html  css  js  c++  java
  • Maven(一) 工程的聚合与依赖

    工程的聚合与依赖

    1 聚合

    当项目是多模块时,如何一次构建多个模块,而不是要分别到多个模块下分别执行Maven命令。

    1.1 父子结构

    image-20200625215626180

    <!--父模块netsales-poss中的packaging必须为pom-->
    <packaging>pom</packaging>
    
    <!--父模块netsales-poss中的pom.xml中引入子模块-->
    <modules>
        <module>poss-basic</module>
        <module>poss-core</module>
        <module>poss-openapi</module>
    </modules>
    
    1.2 平行结构

    image-20200625220031080

    <!--父模块netsales-parent中的packaging必须为pom-->
    <packaging>pom</packaging>
    
    <!--父模块netsales-parent中的pom.xml中引入子模块-->
    <modules>
        <module>../netsales-framework</module>
        <module>../netsales-jobs</module>
    </modules>
    

    <modelu>中的路径可以理解为模块pom.xml的相对路径

    在父模块中执行Maven的构建命令时,maven给根据各个模块之间的依赖关系,依次构建各个模块

    2 继承

    多个子项目都需要某些依赖,就可以把子项目共同的依赖抽取到父项目中,子项目通过继承得到这些依赖,便于管理。

    <!--poss-openapi模块中使用parent标签指定父模块-->
    <parent>
        <groupId>com.aster.netsales.poss</groupId>
        <artifactId>netsales-poss</artifactId>
        <version>1.1.0</version>
    </parent>
    
    2.1 dependencyManagement依赖继承

    父模块使用 dependencyManagement 标签来管理依赖,子项目默认不继承,可以配置继承。

    <dependencyManagement>
        <dependencies>
            <!-- 子 pom 可以配置继承 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
            	<artifactId>lombok</artifactId>
                <version>1.18.12</version>
            </dependency>
            <!-- 子 pom 不可以继承 -->
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>1.5.6</version>
                <optional>true</optional>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    子模块配置父模块在dependencyManagement 中的依赖时,不需要版本, 会从父项目继承, 如果指定版本就是代表不是来自父 pom 而是子 pom 自己的

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- 父项目的 swagger 是不能继承的 -->
    </dependencies>
    
    2.2 dependencies依赖继承

    父模块中使用<dependencies>申明的依赖,子模块默认会全部继承。

  • 相关阅读:
    jsp中页面包含的方法(转载)
    comparator的用法
    Spring对Hibernate事务管理【转】
    jQuery笔记
    Spring事务配置的五种方式【转】
    Spring AOP 学习小结【转】
    DWR3.0 dwr 返回值(数组,集合,Map)
    关于tomcat startup.bat启动后一闪而过的问题(转)
    Spring 异常关键字 no matching editors or conversion strategy found 解决方法
    关于dhtmlxScheduler的使用说明(ADD EDIT DEL,自定义CelendarBox)【转】
  • 原文地址:https://www.cnblogs.com/lyldelove/p/13193366.html
Copyright © 2011-2022 走看看