Maven配置简单介绍

之前也一直使用Maven进行项目构建,但仅限于简单使用,并没有进行系统的学习。本文仅为Maven的配置文件setting.xml的简单说明,以做备忘。

Setting.xml配置文件的标签说明

默认情况下maven的setting.xml文件会包含如下内容,其中“...”代表此标签下有子标签。



    /path/to/local/repo 
    true 
    false 
    ... 
    ... 
    ... 
    ... 
    ... 
    ... 

localRepository标签

此标签用于指定本地仓库的路径,本地仓库中会存放项目中所依赖的Lib库。默认本地的仓库路径为${user.home}/.m2/repository
Windows为C:\Users\{USERNAME}\.m2\repository
MAC为/Users/{USERNAME}/.m2/repository
Linux为/home/{USERNAME}/.m2/repository
一般可以将此配置修改为非系统且存储空间比较大的磁盘,避免占用系统盘空间,重装系统也会导致数据丢失。

interactiveMode标签

是否需要和用户交互以获得输入。如果Maven需要和用户交互以获得输入,则设置成true,反之则应为false,默认为true。
还没有具体使用和示例 @TODO

offline标签

是否离线,默认是false。在Maven进行项目编译和部署等操作时是否允许Maven进行联网来下载所需要的信息,对不能连接到远程仓库的情况比较实用。

pluginGroups标签

此标签下可以有多个pluginGroup,每个pluginGroup里需要指定一个groupId。pluginGroups默认自动包含org.apache.maven.pluginsorg.codehaus.mojo。此配置可以用于简化命令行输入,例如:


    org.mortbay.jetty

我们可以直接输入mvn jetty:run代替mvn org.mortbay.jetty:jetty-maven-plugin:run

proxies标签

此标签下可以定义多个proxy子元素,用于指定Maven在进行联网时需要使用的代理。当设置了多个代理的时候active为true的代理将会被使用,多个proxy的active都设置为true时,第一个会被使用。示例:


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

servers标签

此标签下可以定义多个server子元素,用于存放连接到某个需要验证的远程服务器时的验证信息。有username/password和privateKey/passphrase两种方式。示例:


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

  • id,和repository/mirror中指定的id相匹配,即指定某个repository/mirror使用此验证方式;
  • username和username 验证用的账号和密码,密码可进行加密,详见:Password Encryption
  • privateKey和privateKey,功能和前两个类似,privateKey中指定私钥的位置,默认${user.home}/.ssh/id_dsa使用此方式时,必须保证删掉password
  • filePermissions和directoryPermissions,当部署系统时创建的文件和文件夹的权限

mirrors标签

指定多个远程仓库的镜像,mirror用以缓解远程仓库的压力,把对远程仓库的请求转换到对其镜像地址,比如国内的aliyun,oschina,自己用nexus搭建的仓库等。


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

  • id,mirror的唯一ID
  • name,用于友好的mirror名称,方便识别mirror
  • url,mirror的地址,maven会使用这个地址代替原有仓库地址访问资源
  • mirrorOf,所关联仓库的ID。同时关联多个时,用逗号隔开;*表示关联所有的仓库;排除某一个仓库时,可以使用*,!repositoryId
* = everything
external:* = everything not on the localhost and not file based.
repo,repo1 = repo or repo1
*,!repo1 = everything except repo1

profiles标签

指定多个profile。profile元素由activation、repositories、pluginRepositories和properties四个元素组成。当一个profile在settings.xml中是处于活动状态并且在pom.xml中定义了一个相同id的profile时,settings.xml中的profile会覆盖pom.xml中的profile。


      test
       
        false
        1.5 
         
          Windows XP
          Windows
          x86
          5.1.2600
        
         
          mavenVersion
          2.0.3
        
         
          ${basedir}/file2.properties
          ${basedir}/file1.properties
        
      
       
        ${user.home}/our-project
      
       
        
            codehausSnapshots
            Codehaus Snapshots
            
                false
                always
                warn
            
            
                true
                never
                fail
            
            http://snapshots.maven.codehaus.org/maven2
            default
        
      
      
        ...
      

  • activation标签
    用于指定profile的激活条件,activeByDefault指定当没有profile处于激活状态时是否激活此profile。如果需要满足多个JDK版本可参考maven-enforcer-plugin
  • properties标签
    定义属性键值对的,当此profile是激活状态的时候,properties下面的属性都可以在pom.xml中使用。
  • repositories标签
    定义多个repository标签,指定远程仓库。当该profile是激活状态的时候,这里的远程仓库将作为当前pom的远程仓库。
    releases、snapshots:限制类型
    enabled:表示这个仓库是否允许这种类型
    updatePolicy:更新策略,表示多久尝试更新一次。可选值有always、daily、interval:X(X的单位为分)和never,默认daily。
    checksumPolicy:Maven在部署项目到仓库的时候会连同校验文件一起提交,checksumPolicy指定当这个校验文件缺失或不正确的时候该如何处理,可选项有ignore、fail和warn。
  • pluginRepositories标签
    和repositories类似,pluginRepositories是用来指定插件仓库的。

activeProfiles标签


    env-test

包含多个activeProfile元素,指定处于活跃状态的profile。

你可能感兴趣的:(Maven配置简单介绍)