Maven常用一些标签和知识总结

当前项目的信息

:企业网址反写+项目名

  :项目名-模块名

  :版本号+类型(snapshot快照版本(简化版本)、alpha内测版、beta公测版、release稳定版、GA正式发布版)

  :打包类型,默认是jar,可以配置成war、zip、pom类型。

:当前项目名

:项目地址

:项目描述信息

:开发者信息

:项目许可证信息,用来发布时授予别人使用此项目的权利

:组织信息,企业信息

:属性值标签,也叫变量标签。



依赖标签

//实际引用jar包

   

   

     

               

             

               

       

        一个范围

       

       

           

             

             

             

             

           

       

   




依赖管理标签:

//版本管理,不引入jar 包

       

             

                org.springframework 

                spring-core 

                3.2.7 

             

     

 




build:项目支持标签,一般用来引入插件

   

     

       

               

               

               

        其他设置...

     

   




构建插件

     

      myProject 

     

     

         

              org.apache.maven.plugins

              maven-source-plugin

              2.4

             

                 

                      package

                     

                          jar-no-fork

                     

                 

             

         

     

     

     

         

             

                  maven-compiler-plugin

                 

                 

                 

                     

                      1.7

                     

                      1.7

                     

                      ${project.build.sourceEncoding}

                 

             

         

     

   

 




parent:继承标签,用于继承父项目。

    org.springframework.boot

    spring-boot-starter-parent

    1.5.6.RELEASE

   




moudules:聚合标签

用于聚合多个maven项目,这样用某指令执行这个pom就会把聚合的各项目全部执行,同时处理多个项目。

        a-demo

        b-client

        c-interface

   




依赖冲突与解决

依赖冲突:一个项目A,通过不同依赖传递路径依赖于X,若在不同路径下传递过来的X版本不同,那么A应该导入哪个版本的X包呢?

    冲突解决方案:

    1:如果依赖路径的长度不同,则“短路优先”:

        A—>B—>C—>D—>E—>X(version 0.0.1)

        A—>F—>X(version 0.0.2)

        则A依赖于X(version 0.0.2)。

    2:依赖路径长度相同情况下,则“先声明优先”:

        A—>E—>X(version 0.0.1)

        A—>F—>X(version 0.0.2)

        则在项目A的中,E、F那个在先则A依赖哪条路径的X。




maven的继承与聚合(相关标签上面已列),更多用于模块化开发

继承:

1:创建父maven项目,在pom.xml中定义被共用的依赖:通过标签。

2:在需要使用到共用依赖包的项目中继承父项目:通过标签

聚合:

创建项目E,在E的pom.xml中,首先修改E的为pom,表示项目E只是一个maven脚本文件,用于执行。然后通过标签进行聚合:



依赖范围

compile:默认范围,编译、测试、运行都有效

provided:编译和测试有效,最后运行不会被加入,如tomcat依赖

runtime:在测试和运行的时候有效,编译不会被加入,比如jdbc驱动jar

test:测试阶段有效,比如junit

system:与provided一致,编译和测试阶段有效,但与系统关联,可移植性差

import:导入的范围,它只是用在dependencyManagement中,表示从其它的pom中导入dependency的配置




依赖排除

通过标签实现。

    A项目引用B项目依赖时,主动排除传递的C项目依赖,修改A项目pom.xml

   

          com.jsun.test

          B

          0.0.1-SNAPSHOT

         

           

              com.jsun.test

              C

           

         

       

通过true实现

改B项目的pom.xml:

      com.mavan.demo

      C

      0.0.1-SNAPSHOT

      true

   

你可能感兴趣的:(Maven常用一些标签和知识总结)