JAVA开发(maven中常见标签解释)

父模块pom



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.2
    

    cn.XXX
    XXX-XXX-plat
    pom
    1.0-SNAPSHOT

    
        8
        8
        1.0-SNAPSHOT
        1.8
        2020.0.3
        2.5.2
        8.0.17
        1.1.13
        3.4.3.4
        2.2.0
        1.8.0
        7.6.0.142
        1.2.83
        2.9.2
        5.7.7
        3.17
        3.8.1
        1.4.18
    

    
        
            org.apache.logging.log4j
            log4j-to-slf4j
            compile
        
        
            org.apache.logging.log4j
            log4j-api
            compile
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-gateway-server
                3.0.7
            
        
    

    
       base-common
       base-gateway
       base-admin
       XXX-business
       XXX-cockpit
       XXX-data
       base-interceptor
    

子模块pom



    4.0.0
    
        XXX-XXX-plat
        cn.XXX
        1.0-SNAPSHOT
    
    XXX-business
    jar
    

        
            org.springframework.boot
            spring-boot-starter
        
 
        
            org.springframework.boot
            spring-boot-starter-webflux
        

        
            cn.ctg
            base-common
            1.0-SNAPSHOT
        

        
            cn.ctg
            base-interceptor
            1.0-SNAPSHOT
        

        
            org.postgresql
            postgresql
        

        
        
            com.ctrip.framework.apollo
            apollo-client
            ${apollo.version}
        

        
            com.ctrip.framework.apollo
            apollo-core
            ${apollo.version}
        

        
            io.springfox
            springfox-swagger2
            ${swagger2.version}
        

        
            io.springfox
            springfox-swagger-ui
            ${swagger2.version}
        

        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        

        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
            
                
                    com.thoughtworks.xstream
                    xstream
                
            
        
        
            com.thoughtworks.xstream
            xstream
            ${xstream.version}
        

        
            com.baomidou
            mybatis-plus-boot-starter
            ${mybatisplus.version}
        

        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

        
        
            com.aliyun.oss
            aliyun-sdk-oss
            3.13.2
        
        
        
        
            com.qcloud
            cos_api
            5.6.89
        
        
        
            org.apache.rocketmq
            rocketmq-client
            4.7.1
        
        
        
             org.apache.rocketmq
             rocketmq-acl
             4.7.1
        
        
        
            com.aliyun.mq
            mq-http-sdk
            
            1.0.3.2 
            jar-with-dependencies
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        ${project.artifactId}
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    true
                
            

            
                maven-antrun-plugin
                
                    
                        copy
                        package
                        
                            
                                
                                    
                                        
                                    
                                
                            
                        
                        
                            run
                        
                    
                
            
        
    

modelVersion:声明项目描述符遵循哪一个POM模型版本。

parent:引入父级pom文件,继承父级POM配置的内容。

groupId:公司名称、组织名称、一般命名为包名(包名,如com.XXX)。

artifactId:项目通用名称(模块名称)。

version:对应项目(模块)版本号。

packaging:打包类型。如war、jar、maven-plugin、ejb、pom、ear、par、rar

name:用户描述项目的名称,可选。

url:项目主页的URL, Maven产生文档时用。

exclusions:排除依赖管理(写在dependency中)。

exclusion:具体要排除的依赖项。

repositories:对maven仓库进行路径指定。

repository:具体仓库(有id、name、url子元素)。

properties:自定义标签管理,依赖的版本统一管理(可在其内自定义标签名、值,用法同于el表达式:${标签名}得到其值)。

scope:管理部署(可以使用5个值:

* compile,缺省值,适用于所有阶段,会随着项目一起发布。

* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

)。

dependencies:依赖集合,jar包管理。

dependency:具体的依赖项。

dependencyManagement:依赖,jar包管理。

dependencyManagement和dependencies区别:

1、dependencies:自动引入声明在dependencies里的所有依赖,并默认被所有的子项目继承。如果项目中不写依赖项,则会从父项目

继承(属性全部继承)声明在父项目dependencies里的依赖项。

2、dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要的依赖。如果子项目中不声明依赖,

不会从父项目中继承;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都继承

自父pom;如果子项目中指定了版本号,那么会使用子项目中指定的jar版本,覆盖掉父中的版本。同时dependencyManagement让子项目引用依赖,而不用显示的列

出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个

dependencyManagement元素中指定的版本号,实现所有子项目使用的依赖项为同一版本。

3、dependencyManagement 中的 dependencies 并不影响项目的依赖项;而独立dependencies元素则影响项目的依赖项。只有当外

层的dependencies元素中没有指明版本信息时,dependencyManagement 中的 dependencies 元素才起作用。一个是项目依赖,一个是maven

项目多模块情况时作依赖管理控制的。

4、pluginManagement和plugins 区别和dependencyManagement和dependencies区别相似,只不过它们用于管理plugin。

build:全局配置(project build),针对当前项目的所有情况都有效。自定义配置(profile build)针对不同的profile配置。

defaultGoal:执行build任务时,如果没有指定目标,将使用的默认值。

finalName:build目标文件的名称,默认情况为${artifactId}-${version}。

include:指定哪些文件将被匹配,以*作为通配符。

excludes:指定哪些文件将被忽略。

resources:用于包含或者排除某些资源文件。

testResources:定义和resource类似,只不过在test时使用

directory:build目标文件的存放目录,就是定义resource文件所在的文件夹,默认在${basedir}/target目录。

plugins:指定使用的插件,插件管理。

configuration:配置该plugin期望得到的properties。

modules:一个项目有多个平级模块,也叫做多重模块,或者子模块,子服务,modules实现平级模块管理。

module:具体模块名称(标明该模块和artifactId标签中模块平级),是project标签的子元素。

profiles:自定义配置信息管理

profile:具体自定义配置(可以在不同环境下使用不同的配制文件)

activation:profile的子元素,指该配置的激活条件。Activation是profile的开启钥匙,但不是激活profile的唯一方式。

jdk:当匹配的jdk被检测到,profile被激活。

os:用法同于jdk,当匹配的操作系统属性被检测到,profile被激活。

你可能感兴趣的:(java,java,maven,pom)