Maven学习—setting.xml & pom.xml 配置文件详解

一、Maven最重要的两个配置文件

  • Maven 仓库及相关设置配置文件 setting.xml配置文件可以设置本地仓库目录、远程仓库地址、JDK版本等等
  • Maven构建Java工程的pom配置文件 pom.xml

        pom:Project Object Mode

        Java 工程配置文件,配置工程依赖包。

二、setting.xml配置文件

1、配置文件简介

maven的配置文件settings.xml存在于两个地方:

  • 安装的地方:${M2_HOME}/conf/settings.xml
  • 用户的目录:${user.home}/.m2/settings.xml

前者又被叫做全局配置对操作系统的所有使用者生效;后者被称为用户配置只对当前操作系统的使用者生效如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml会覆盖全局的settings.xml。

Maven安装后,用户目录下不会自动生成settings.xml,只有全局配置文件。如果需要创建用户范围的settings.xml,可以将安装路径下的settings复制到目录${user.home}/.m2/。Maven默认的settings.xml是一个包含了注释和例子的模板,可以快速的修改它来达到你的要求。

2、配置文件详解

2.1、localRepository 节点

配置本地仓库地址,Maven从远程仓库或者私有仓库下载的依赖包保存到本地仓库的路径。


/Users/Flygo/.m2/repository

2.2、interactiveMode 节点


true

2.3、usePluginRegistry 节点




false

2.4、offline 节点



false

2.5、pluginGroups 节点






    
    org.codehaus.mojo

2.6、proxies 节点


    
    
        
        myproxy
        
        true
        
        http://…
        
        proxy.somewhere.com
        
        8080
         
        proxyuser
        
        somepassword
        
        *.google.com|ibiblio.org
    

2.7、servers 节点



    
    
        
        server001
        
        my_login
        
        my_password
        
        
        ${usr.home}/.ssh/id_dsa
        
        some_passphrase
        
        
        664
        
        775
        
        
    

2.8、mirrors 节点



    
      
        
        planetmirror.com
        
        PlanetMirror Australia
        
        http://downloads.planetmirror.com/pub/maven2
        
        
        central
    

 2.9、profiles 节点






    
    
        
        test
        
        
        
        
        
            
            false
            
            1.7
            
            
                
                Windows XP
                
                Windows
                
                x86
                
                5.1.2600
            
            
            
            
                
                mavenVersion
                
                2.0.3
            

            
            
            
                
                /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
                
                /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
            
        

         
        
         
        
        
        
        
        
        
            
            usr/local/winner/jobs/maven-guide
        

        
        
            
            
                
                codehausSnapshots
                
                Codehaus Snapshots
                
                
                    
                    false
                    
                    
                    always
                    
                    
                    warn
                

                
                
                  
                    
                    
                     
                

                
                http://snapshots.maven.codehaus.org/maven2
                
                
                default
            
        

        
        
        
        
            
            
                
                    
                    
                    
                

                
                    
                    
                    
                

                
                
                
                
            

        

        
        
        
        
        
            env-test
        
    

三、pom.xml配置文件

1、pom.xml简介

POM代表项目对象模型。它是 Maven 中工作的基本单位,这是一个 XML 文件。它始终保存在该项目基本目录中的 pom.xml 文件。

POM 包含的项目是使用 Maven 来构建的,它用来包含各种配置信息。
POM 也包含了目标和插件。在执行任务或目标时,Maven 会使用当前目录中的 POM。它读取POM得到所需要的配置信息,然后执行目标。

一个Maven项目,在POM中配置坐标,标识项目在仓库的唯一性。
坐标由groupIdartifactIdversion三个属性组合成坐标标识项目的在仓库的唯一性

把project当作对象看待。
通过maven构建工具可以让对象(项目)和对象(项目)之间产生关系。

2、POM 项目配置例子

创建Maven工程后,最简单的POM配置文件


   4.0.0
   com.flygo520
   demo
   1.0

3、POM关键元素

  • 所有的 POM 文件要项目元素必须有三个必填字段groupIdartifactIdversion
  • 在库中的项目符号是:groupId:artifactId:version
  • pom.xml 的根元素是 project,它有三个主要的子节点

关键元素说明

元素节点

节点说明

groupId 公司名.公司网址倒写。例如:com.flygo520
artifactId 项目名。例如:demo
version 版本号。例如:1.0

4、POM 元素节点说明

4.1、parent 节点

  

     
     
     
     
     
     
       
     

4.2、项目工程相关节点

     
4.0.0   
   
com.flygo520   
   
demo   
   
jar   

1.0-SNAPSHOT   

demo-maven

https://www.flygo520.com 
   
maven pjoect Demo.

4.3、prerequisites 节点


  
      
      

4.4、issueManagement 节点



 
    jira
    
    http://jira.baidu.com/banseon

4.5、ciManagement 节点

  
  
    
    
    
    
    
    
     
     
          
          
          
          
          
          
          
          
          
          
          
        

4.6、mailingLists 节点





    
    
        
        Demo
        
        [email protected]
        
        [email protected]
        
        [email protected]
        
        https://www.flygo520.com
    

4.7、developers 节点



    
    
        
        HELLO WORLD
        
        FlyGo
        
        [email protected]
        
        
        
        
            Project Manager
            Architect
        
        
        demo
        
        https://www.flygo520.com
        
        
            No
        
        
        -5
    

4.8、contributors 节点



    
    
        
        
        
        
        
        
        
        
    

4.9、licenses 节点



    
    
        
        Apache 2
        
        http://www.baidu.com/banseon/LICENSE-2.0.txt
        
        repo
        
        A business-friendly OSS license
    

4.10、scm 节点



    
       
          scm:svn:http://svn.sundaytech.cn/trunk
      
    
       
          scm:svn:http://svn.sundaytech.cn/trunk
      
    
    
    
    http://svn.http://svn.sundaytech.cn/trunk/url>

4.11、organization 节点



    
    demo
    
    https://www.flygo520.com

4.12、build 节点



    
    
    
    
    
    
    
    
    
    
    
    
        
        
            
            
            
            
            
            
        
    
    
    
    
    
        
        
            
            
            
            
            
            
            
            
            
            
        
    
    
    
        
        
            
            
            
            
            
        
    
    
    
    
    
    
    
    
    
        
        
            
            
                
                
                
                
                
                
                
                
                
                
                    
                    
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                    
                
                
                
                    
                    
                        ......
                    
                
                
                
                
                
            
        
    
    
    
        
        
            
            
            
            
            
                
                    
                    
                    
                    
                    
                
            
            
                
                
                    ......
                
            
            
            
            
        
    

4.13、profiles 节点



    
    
        
        
        
        
            
            
            
            
            
            
                
                Windows XP
                
                Windows
                
                x86
                
                5.1.2600
            
            
            
                
                mavenVersion
                
                2.0.3
            
            
            
                
                /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
                
                /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
            
        
        
        
            
            
                
                    
                    
                    
                    
                    
                
            
            
                
                    
                    
                    
                    
                    
                
            
            
            
            
            
                
                    
                    
                        
                        
                        
                        
                        
                            
                                
                                
                                
                                
                                
                            
                        
                        
                            
                            
                                ......
                            
                        
                        
                        
                        
                    
                
            
            
                
                
                    
                    
                    
                    
                    
                        
                            
                            
                            
                            
                            
                        
                    
                    
                        
                        
                            ......
                        
                    
                    
                    
                    
                
            
        
        
        
        
        
            
            
                
                    
                    
                    
                
                
                    
                    
                    
                
                
                
                
                
            
        
        
        
            
            
                
                    
                    
                    
                
                
                    
                    
                    
                
                
                
                
                
            
        
        
        
            
            
                ......
            
        
        
        
        
        
            ......
        
        
        
            
                
                
                    ......
                
            
        
        
        
            ......
        
        
        
    


4.14、repositories 节点



    
    
        
        
            
            
            
            
            
            
        
        
        
            
            
            
        
        
        banseon-repository-proxy
        
        banseon-repository-proxy
        
        http://192.168.1.169:9999/repository/
        
        default
    

4.15、pluginRepositories 节点



    
    
        ......
    

4.16、dependencies 节点



    
        
        org.apache.maven
        
        maven-artifact
        
        3.8.1
        
        jar
        
        
        
        test
        
        
        
        
            
                spring-core
                org.springframework
            
        
        
        true
    

4.17、reporting 节点





    
    
    
    
    
    
        
        
            
            
            
            
            
            
            
            
            
            
            
            
                
                
                    
                    
                    
                    
                    
                    
                    
                    
                
            
        
    

4.18、dependencyManagement 节点



    
        
        
            ......
        
    

4.19、distributionManagement 节点



    
    
        
        
        banseon-maven2
        banseon maven2
        file://${basedir}/target/deploy
        
    
    
    
        
        banseon-maven2
        Banseon-maven2 Snapshot Repository
        scp://svn.sundaytech.cn/flygo:/usr/local/maven-snapshot
        
    
    
    
        
        banseon-site
        
        business api website
        
           
              scp://svn.sundaytech.cn/flygo:/var/www/localhost/banseon-web    
          
    
    
    
    
    
        
        
        
        
        
        
        
        
    
    
    


你可能感兴趣的:(Maven,maven,学习)