`
java_mzd
  • 浏览: 583290 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

学习笔记之maven2学习总结(2,进阶setting.xml与pom.xml)

阅读更多

<本文转载自淘宝 QA TEAM>http://qa.taobao.com/?p=560

这篇文章主要是关于maven2的两个配核心置文件的理解:pom.xmlsetting.xml。

       pom.xml位于创建的项目文件夹内,setting.xml位于maven包解压后conf文件夹内。

   先来说说settings.xmlsettings.xml对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个 settings.xml,一个位于maven2的解压目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以 maven2/conf下面的settings.xml就作为团队共同的配置文件,保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的自定义设置,如用户信息,所以另外一个settings.xml就作为本地配置。

settings.xml基本结构如下:

<settings xmlns=”http://maven.apache.org/POM/4.0.0″

      xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

      xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0

      http://maven.apache.org/xsd/settings-1.0.0.xsd”>

  <localRepository/>

  <interactiveMode/>

  <usePluginRegistry/>

  <offline/>

  <pluginGroups/>

  <servers/>

  <mirrors/>

  <proxies/>

  <profiles/>

  <activeProfiles/>

</settings>

 

   几个主要的、常用的配置因素:

1,localRepository:表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在${user.dir}/.m2/repository,如需要另外设置,就换成其他的路径,如::\repo 

2,offline:如果不想每次编译,都去查找远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。 

3,Servers POM中的 distributionManagement元素定义了开发库。然而,特定的usernamepwd不能使用于pom.xml,所以通过此配置来保存server信息:

  <servers>

    <server>

      <id>server001</id>

      <username>guangyuan</username>

      <password>my_password</password>

      <privateKey>${usr.home}/.ssh/id_dsa</privateKey>

      <passphrase>some_passphrase</passphrase>

      <filePermissions>664</filePermissions>

      <directoryPermissions>775</directoryPermissions>

      <configuration></configuration>

    </server>

  </servers>

 

     id:server id,用于匹配distributionManagementid,比较重要。

     username, password:用于登陆此服务器的用户名和密码

    privateKey, passphrase:设置private key,以及passphrase

    filePermissions, directoryPermissions:当库文件或者目录创建后,需要使用权限进行访问。参照unix文件许可,如664775

 

4,Mirrors 表示镜像库,指定库的镜像,用于增加其他库:

  <mirrors>

    <mirror>

      <id>tb_mirror</id>

      <name>taobao mirror</name>

      <url>http://downloads.planetmirror.com/pub/maven2</url>

      <mirrorOf>central</mirrorOf>

    </mirror>

  </mirrors>

 

     id,name:唯一的标志,用于区别镜像

     url:镜像的url

     mirrorOf:此镜像指向的服务id

 

5,Proxies 此代理设置,主要用于无法直接访问中心的库用户配置。

  <proxies>

    <proxy>

      <id>myproxy</id>

      <active>true</active>

      <protocol>http</protocol>

      <host>proxy.somewhere.com</host>

      <port>8080</port>

      <username>proxyuser</username>

      <password>somepassword</password>

      <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>

    </proxy>

  </proxies>

 

      id:代理的标志

     active:是否激活代理

     protocol, host, port:protocol://host:port 代理

     username, password:用户名和密码

     nonProxyHosts: 不需要代理的host

 

6,repositories pluginRepositories  定义其他开发库和插件开发库。对于团队来说,肯定有自己的开发库。可以通过此配置来定义。 如下的配置,定义了本地开发库,用于release 发布。pluginRepositories 的定义与repositories类似。

    <repositories>

        <repository>

          <id>repo-local</id>

         <name>Internal 开发库</name>

         <url>http://192.168.0.2:8082/repo-local</url>

         <releases>

            <enabled>true</enabled>

            <updatePolicy>never</updatePolicy>

            <checksumPolicy>warn</checksumPolicy>

         </releases>

         <snapshots>

            <enabled>false</enabled>

         </snapshots>

font-size: 19px

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics