欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven setting.xml详解

程序员文章站 2024-01-15 23:52:46
...

常用setting.xml配置文件

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
       <localRepository>${user.home}/.m2/repository</localRepository>
       <interactiveMode>true</interactiveMode>
       <offline>false</offline>
       <servers>
          <server>
            <id>server001</id>
            <username>my_login</username>
            <password>my_password</password>
            <privateKey>${user.home}/.ssh/id_dsa</privateKey>
            <passphrase>some_passphrase</passphrase>
            <filePermissions>664</filePermissions>
            <directoryPermissions>775</directoryPermissions>
            <configuration></configuration>
        </server>
     </servers>
     <mirrors>
       <mirror>
         <id>server001</id>
         <name>PlanetMirror Australia</name>
         <url>http://downloads.planetmirror.com/pub/maven2</url>
         <mirrorOf>central</mirrorOf>
       </mirror>
   </mirrors>
   <profiles>
    <profile>
      <id>test</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <jdk>1.5</jdk>
        <os>
          <name>Windows XP</name>
          <family>Windows</family>
          <arch>x86</arch>
          <version>5.1.2600</version>
        </os>
        <property>
          <name>mavenVersion</name>
          <value>2.0.3</value>
        </property>
        <file>
          <exists>${basedir}/file2.properties</exists>
          <missing>${basedir}/file1.properties</missing>
        </file>
      </activation>
      <repositories>
        <repository>
          <id>codehausSnapshots</id>
          <name>Codehaus Snapshots</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <url>http://snapshots.maven.codehaus.org/maven2</url>
          <layout>default</layout>
        </repository>
      </repositories>
      <pluginRepositories>
        ...
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles/>
</settings>

配置详解

参数 描述
localRepository 本地仓库路径, 默认值: ${user.home}/.m2/repository
interactiveMode 当 maven 需要输入值的时候, 是否交由用户输入, 默认为true;false 情况下 maven 将根据使用配置信息进行填充
offline 是否支持联网进行 artifact 下载、 部署等操作, 默认: false
server maven中用pom.xml中的repositories和distributionManagement来表示包的下载和上传路径,但是pom.xml文件中不能配置验证信息,比如用户名(username)和密码(password)
server.id 这个id会跟mirrors下的mirror的id或者repository中的id相对应,其中mirror用于配置远程仓库信息,而如果mirror对应的远程仓库需要权限验证时,则可以通过server进行配置
server.username 远程仓库权限验证的用户名
server.password 远程仓库权限验证的密码
privateKey 跟之前的username一样,只是这种是ssh key
passphrase 跟之前的password一样,这个是ssh key的密码
filePermissions 当我们要将文件发布到远程仓库时,这里用于控制文件的权限,跟linux文件权限一样,通常由664或者775
directoryPermissions 这个是控制发布的文件目录的权限
mirror 相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址
mirror.id id和name用于唯一标识一个mirror,其中id会跟server的id进行匹配去设置验证信息
mirror.name 设置镜像的名字
url 设置镜像地址
mirrorOf 标签里面放置的是要被镜像的Repository ID
profiles 用于设置不同环境的配置,每个profile都有唯一的id,也包含properties属性。这里为每个profile都定义一个名为profiles.active的properties,每个环境的值不同。当我们打包项目时,**不同的环境,profiles.active字段就会被赋予不同的值
profile.id 不同环境Profile的唯一id
activation 用于配置不同环境的不同参数
activation.repositories 用于配置下载包的远程仓库的信息
activation.pluginRepositories 用于配置插件下载包的远程仓库的信息
activeProfiles 用于设置默认的profile

镜像(mirror)详解

没有配置镜像架构
maven setting.xml详解

配置了镜像之后的架构
maven setting.xml详解

相关标签: Java构建工具