maven相关

一.父pom标签说明

构建管理声明:<packaging>pom</packaging>

管理的工程列表:<modules>

声明此处进行依赖管理:<dependencyManagement>

属性定义用于版本管理等:<properties>

    <packaging>pom</packaging>
    <modules>
        <module>../maven-test</module>
    </modules>
    <properties>
        <fastjson>1.2.75</fastjson>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.16</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

 二.依赖管理

 1、版本管理:

  • SNAPSHOT(快照版本):测试阶段的版本
  • RELWASE(发布版本):正式稳定的版本

2、依赖管理:

1.可选依赖:<optional></optional>:当别人饮用了你的该依赖时,<optional>true</optional>时该条依赖对外不透明

2.排除依赖:主动断开依赖的资源,被排除的资源无需指定版本。比如project-1依赖了project-2,projec-1中的fastjson和project-2中的fastjson存在冲突,则可在project-1的pom中声明(项目上测试过,排除后如果project-2依赖了该jar包,可能导致某些异常):

        <dependency>
            <groupId>org.example</groupId>
            <artifactId>project-2</artifactId>
            <version>1.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>fastjson</groupId>
                    <artifactId>fastjson</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>

 3.依赖传递:project-1依赖了projet-2(project-2依赖了project-3),project-1就拥有了project-2下的依赖.project-1和project-2就是直接依赖,project-1和project-3就是间接依赖

 4.依赖传递的优先级

  1、路径优先:层级越深,优先级越低

  2、声明优先:当依赖在相同层级时,配置顺序靠前的覆盖配置顺序靠后的

  3、特殊优先:例如引依赖时写了两次,那么后写的覆盖先写的

 5.依赖范围:

  依赖的jar默认情况可以在任何地方使用,开源通过<scope>标签配置该依赖的作用范围(可使用的范围)

scope main test package
compile(默认) Y Y Y
test   Y  
provided      
runtime     Y

 6.本地仓库访问私服settings.xml配置

<servers>
  <server>
    <id></id>    id是自定义名称
    <username></username> 用户名
    <password></password>  密码
 </server>
</servers> 
<mirrors>
   <mirror>
    <id></id>私服名称
    <mirrorOf>*</mirrorOf> 使用的都从这拿
    <url></url> 私服的url
   </mirror>
</mirrors>    
原文地址:https://www.cnblogs.com/omgliyq/p/15110837.html