maven的pom.xml中的常用标签的使用

groupId和artifactId怎么写

groupId,artifactId,version,packaging作为项目唯一坐标

groupId一般分为多个段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

比如我创建一个项目,我一般会将groupId设置为com.mycompany,com表示域为商业组织,mycompany是公司英文名称,artifactId设置为etshop,表示你这个项目的名称是etshop,依照这个设置,你的包结构最好是com.mycompany.etshop打头的,如果有个productDao,它的全路径就是com.mycompany.etshop.productDao


pom.xml中的如下设置

pom 

说明pom 项目里没有java代码,也不执行任何代码,只是为了聚合工程或传递依赖用的,一般父模块中的pom配置要有此内容。如果子模块中添加了依赖,而父模块没有配置pom,则会报错 must be “pom” but is “jar”


父模块中的设置有什么用?如下,配置之后,我们在编绎父模块的时候,会自动重新编绎子模块,如果没有modules设置,则不会自动编绎子模块。


    hitest_a

maven项目pom.xml中标签的使用

groupId:项目或者组织的唯一标志 ,如cn.gov.customs生成的相对路径为:/cn/gov/customs
artifactId:项目的通用名称
version:项目的版本
packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par
name:用户描述项目的名称,无关紧要的东西,非必要
url:开发团队官方地址 ,非必要
classifer:分类
对于以上基本标签,groupId,artifactId,version,packaging作为项目唯一坐标

使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom.xml。当我们需要引入一个jar包时,在pom文件中加上就可以从仓库中依赖到相应的jar包。

现在有这样一个场景,有两个web项目A、B,一个java项目C,它们都需要用到同一个jar包:common.jar。如果分别在三个项目的pom文件中定义各自对common.jar的依赖,那么当common.jar的版本发生变化时,三个项目的pom文件都要改,项目越多要改的地方就越多,很麻烦。这时候就需要用到parent标签, 我们创建一个parent项目,打包类型为pom,parent项目中不存放任何代码,只是管理多个项目之间公共的依赖。在parent项目的pom文件中定义对common.jar的依赖,ABC三个子项目中只需要定义,parent标签中写上parent项目的pom坐标就可以引用到common.jar了。

上面的问题解决了,我们在切换一个场景,有一个springmvc.jar,只有AB两个web项目需要,C项目是java项目不需要,那么又要怎么去依赖。如果AB中分别定义对springmvc.jar的依赖,当springmvc.jar版本变化时修改起来又会很麻烦。解决办法是在parent项目的pom文件中使用将springmvc.jar管理起来,如果有哪个子项目要用,那么子项目在自己的pom文件中使用


    
    

标签中写上springmvc.jar的坐标,不需要写版本号,可以依赖到这个jar包了。这样springmvc.jar的版本发生变化时只需要修改parent中的版本就可以了。

具体举例代码如下



    4.0.0

    
    
        org.sonatype.oss
        oss-parent
        9
    
    
    com.github.mpusher
    
    mpush
    
    pom
    
    0.8.1
    
    mpush
    
    MPUSH消息推送系统
    
    https://github.com/mpusher/mpush

    
    
        
            The Apache Software License, Version 2.0
            http://www.apache.org/licenses/LICENSE-2.0.txt
            repo
        
    

    
    
        v${project.version}
        https://github.com/mpusher/mpush
        scm:git:git://github.com/mpusher/mpush.git
        scm:git:ssh://github.com/mpusher/mpush.git
    

    
    
        GitHub Issues
        https://github.com/mpusher/mpush/issues
    

    
    
        MPusher, Inc.
        https://mpusher.io
    

    
    
        
            夜色
            [email protected]
            mpusher
        
    

    
    
        mpush-api
        mpush-boot
        mpush-core
        mpush-tools
        mpush-netty
        mpush-common
        mpush-client
        mpush-test
        mpush-monitor
        mpush-zk
        mpush-cache
    

    
        UTF-8
        UTF-8
        UTF-8
        1.8
        4.1.25.Final
        1.7.25
        linux-x86_64
    


    
    
        
            
            
            
            
                io.netty
                netty-codec
                ${netty.version}
            
            
                io.netty
                netty-transport
                ${netty.version}
            
            
                io.netty
                netty-transport-native-epoll
                ${netty.version}
                ${os.detected.classifier}
            
            
                io.netty
                netty-codec-http
                ${netty.version}
            
            
                io.netty
                netty-handler
                ${netty.version}
            
            
                io.netty
                netty-transport-udt
                ${netty.version}
            
            
                io.netty
                netty-transport-sctp
                ${netty.version}
            
            
            
            
            
                ${project.groupId}
                mpush-test
                ${project.version}
            
            
                ${project.groupId}
                mpush-api
                ${project.version}
            
            
                ${project.groupId}
                mpush-tools
                ${project.version}
            
            
                ${project.groupId}
                mpush-common
                ${project.version}
            
            
                ${project.groupId}
                mpush-netty
                ${project.version}
            
            
                ${project.groupId}
                mpush-core
                ${project.version}
            
            
                ${project.groupId}
                mpush-client
                ${project.version}
            
            
                ${project.groupId}
                mpush-monitor
                ${project.version}
            
            
                ${project.groupId}
                mpush-boot
                ${project.version}
            
            
                ${project.groupId}
                mpush-zk
                ${project.version}
            
            
                ${project.groupId}
                mpush-cache
                ${project.version}
            
            
            
            
            
                org.slf4j
                slf4j-api
                ${slf4j.version}
            
            
            
                org.slf4j
                log4j-over-slf4j
                ${slf4j.version}
            
            
            
                org.slf4j
                jul-to-slf4j
                ${slf4j.version}
            
            
            
                org.slf4j
                jcl-over-slf4j
                ${slf4j.version}
            
            
                ch.qos.logback
                logback-classic
                1.2.3
            
            
                commons-logging
                commons-logging
                1.1.3
                provided
            
            
                log4j
                log4j
                1.2.17
                provided
            
            
            
            
            
            
                junit
                junit
                4.10
                test
            
            
            
                org.apache.commons
                commons-lang3
                3.6
            
            
            
                com.google.guava
                guava
                20.0
            
            
            
                com.alibaba
                fastjson
                1.2.47
            
            
            
                org.apache.curator
                curator-recipes
                2.12.0
                
                    
                        netty
                        io.netty
                    
                
            
            
                org.apache.curator
                curator-x-discovery
                2.12.0
            
            
            
                redis.clients
                jedis
                2.9.0
            
            
            
                com.typesafe
                config
                1.3.3
            
            
            
                org.javassist
                javassist
                3.22.0-GA
            
        
    

    
        
            junit
            junit
            test
        
    

    
    
        
            
                maven-compiler-plugin
                3.6.2
                
                    ${java.version}
                    ${java.version}
                    ${java.encoding}
                
            
            
                maven-resources-plugin
                3.0.2
                
                    ${java.encoding}
                
            
            
                maven-surefire-plugin
                2.20
                
                    true
                
            
        
    

    
        
            dev
            
                true
            
            
                dev
            
        
        
            pub
            
                pub
            
        
    


你可能感兴趣的:(Java)