Maven配置setting.xml和mvn常用命令

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

1.安装的地方:${M2_HOME}/conf/settings.xml

2.用户的目录:${user.home}/.m2/settings.xml

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

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

全局配置一旦更改,所有的用户都会受到影响,而且如果maven进行升级,所有的配置都会被清除,所以要提前复制和备份${M2_HOME}/conf/settings.xml文件,一般情况下不推荐配置全局的settings.xml。

  

  

      
    usr/local/maven  

      
    true  

      
      
      
    false  

      
      
    false  

      
      
      
      
      

          
        org.codehaus.mojo  

      

      
      

          
          

              
            myproxy  

              
            true  

              
            http://…  

              
            proxy.somewhere.com  

              
            8080  

               
            proxyuser  

              
            somepassword  

              
            *.google.com|ibiblio.org  

          

      

      
      

          
          

              
            server001  

              
            my_login  

              
            my_password  

              
              
            ${usr.home}/.ssh/id_dsa  

              
            some_passphrase  

              
              
            664  

              
            775  

              
              

          

      

      
      

          
          

              
            planetmirror.com  

              
            PlanetMirror Australia  

              
            http://downloads.planetmirror.com/pub/maven2  

              
              
            central  

          

      

      
      
      
      
      

          
          

              
            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  

              

          

      

  


上面的配置文件对各个节点的含义及作用都有注解。实际应用中,经常使用的是有限几个节点,其他节点使用默认值足够应对大部分的应用场景。

profile节点

在仓库的配置一节中,已经对setting.xml中的常用节点做了详细的说明。在这里需要特别介绍一下的是节点的配置,profile是maven的一个重要特性。

节点包含了激活(activation),仓库(repositories),插件仓库(pluginRepositories)和属性(properties)共四个子元素元素。profile元素仅包含这四个元素是因为他们涉及到整个的构建系统,而不是个别的项目级别的POM配置。

profile可以让maven能够自动适应外部的环境变化,比如同一个项目,在Linux下编译linux的版本,在win下编译win的版本等。一个项目可以设置多个profile,也可以在同一时间设置多个profile被激活(active)的。自动激活的 profile的条件可以是各种各样的设定条件,组合放置在activation节点中,也可以通过命令行直接指定。如果认为profile设置比较复杂,可以将所有的profiles内容移动到专门的 profiles.xml 文件中,不过记得和pom.xml放在一起。

activation节点是设置该profile在什么条件下会被激活,常见的条件有如下几个:

  1. os 
    判断操作系统相关的参数,它包含如下可以自由组合的子节点元素 
    message - 规则失败之后显示的消息 
    arch - 匹配cpu结构,常见为x86 
    family - 匹配操作系统家族,常见的取值为:dos,mac,netware,os/2,unix,windows,win9x,os/400等 
    name - 匹配操作系统的名字 
    version - 匹配的操作系统版本号 
    display - 检测到操作系统之后显示的信息
  2. jdk 
    检查jdk版本,可以用区间表示。
  3. property 
    检查属性值,本节点可以包含name和value两个子节点。
  4. file 
    检查文件相关内容,包含两个子节点:existsmissing,用于分别检查文件存在和不存在两种情况。 
    如果settings中的profile被激活,那么它的值将覆盖POM或者profiles.xml中的任何相等ID的profiles。 
    如果想要某个profile默认处于激活状态,可以在中将该profile的id放进去。这样,不论环境设置如何,其对应的 profile都会被激活。
maven常用命令介绍

1. 创建Maven的普通java项目: 
   mvn archetype:create 
   -DgroupId=packageName 
   -DartifactId=projectName  
2. 创建Maven的Web项目:   
    mvn archetype:create 
    -DgroupId=packageName    
    -DartifactId=webappName 
    -DarchetypeArtifactId=maven-archetype-webapp    
3. 编译源代码: mvn compile 
4. 编译测试代码:mvn test-compile    
5. 运行测试:mvn test   
6. 产生site:mvn site   
7. 打包:mvn package   
8. 在本地Repository中安装jar:mvn install 
9. 清除产生的项目:mvn clean   
10. 生成eclipse项目:mvn eclipse:eclipse  
11. 生成idea项目:mvn idea:idea  
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package   
13. 编译测试的内容:mvn test-compile  
14. 只打jar包: mvn jar:jar  
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile 
      ( -skipping 的灵活运用,当然也可以用于其他组合命令)  
16. 清除eclipse的一些系统设置:mvn eclipse:clean



你可能感兴趣的:(maven)