【Maven】settings.xml

本文深入解析Maven的settings.xml配置文件,涵盖用户级与全局级配置、本地存储库、交互模式、离线模式、插件组、代理设置、服务器认证、镜像、profiles及其激活条件。介绍了如何通过profiles定制构建环境,包括JDK版本、系统属性和命令行参数的激活机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

${maven-conf}/settings.xml 翻译

settings.xml文件翻译

<?xml version="1.0" encoding="UTF-8"?>

<!--
 | 这是Maven的配置文件。 它可以指定为两个级别:
 |
 |  1.用户级别。     此settings.xml文件为单个用户提供配置,
 |                 通常在${user.home}/.m2/settings.xml中提供。
 |
 |                 注意:可以使用CLI选项覆盖此位置:
 |                 -s /path/to/user/settings.xml
 |
 |  2. 全局级别。    此settings.xml文件为计算机上的所有Maven用户提供配置(假设他们都使用相同的Maven安装)。 
 |                 它通常在${maven.conf}/settings.xml中提供。
 |
 |                 注意:可以使用CLI选项覆盖此位置:
 |                 -gs /path/to/global/settings.xml
 |
 | 此示例文件中的部分旨在为您提供一个充分利用Maven安装的运行起点。在适当的情况下,提供默认值(未指定设置时使用的值)。
 |-->
<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 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository 本地存储库
   | 本地存储库maven的路径将用于存储工件。
   |
   | 默认值: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

  <!-- interactiveMode 交互模式
   | 这将确定maven是否在需要输入时提示您。如果设置为false,
   | maven将使用合理的默认值(可能基于某些其他设置)来处理相关参数。
   |
   | 默认值:true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline 离线
   | 确定maven在执行构建时是否应尝试连接到网络。 这将对工件下载,工件部署等产生影响。
   |
   | 默认值:true
  <offline>false</offline>
  -->

  <!-- pluginGroups 插件组
   | 这是在通过其前缀解析插件时,将搜索的其他组标识符的列表,即在调用诸如"mvn prefix:goal"的命令行时。
   | 如果列表中尚未包含组标识符,则Maven将自动添加组标识符"org.apache.maven.plugins"和"org.codehaus.mojo"。
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | 指定用于插件查找的其他组标识符。
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

  <!-- proxies 代理
   | 这是可以在此计算机上用于连接到网络的代理列表。
   | 除非另有指定(通过系统属性或命令行开关), 否则将使用此列表中标记为活动的第一个代理规范。
   |-->
  <proxies>
    <!-- proxy
     | 用于连接网络的一个代理的规范。
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | 这是一个身份验证profiles列表,由系统中使用的server-id键入。 
   | 要maven必须连接到远程服务器,就可以使用身份验证profiles。
   |-->
  <servers>
    <!-- server
     | 指定连接到特定服务器时要使用的身份验证信息,由系统中的唯一名称标识(由下面的'id'属性引用)。
     |
     | 注意:您应该指定username/password或privateKey/passphrase,因为这些配对是一起使用的。
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->

    <!-- 另一个示例,使用密钥进行身份验证。
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers>

  <!-- mirrors 镜像
   | 这是从远程存储库下载工件时使用的镜像列表。
   |
   | 它的工作原理如下:POM可以声明一个存储库,用于解析某些工件。 
   | 但是,此存储库有时可能会出现流量过大的问题,因此人们已将其镜像到多个位置。
   |
   | 该存储库定义将具有唯一ID,因此我们可以为该存储库创建镜像引用,以用作备用下载站点。
   | 镜像站点将是该存储库的首选服务器。
   |-->
  <mirrors>
    <!-- mirror
     | 指定一个要使用的存储库镜像站点,而不是给定的存储库。
     | 此镜像所服务的存储库具有与此镜像的mirrorOf元素匹配的ID。
     | IDs 用于继承和直接查找的目的,并且在镜像集之间必须是唯一的。
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  </mirrors>

  <!-- profiles 概述文件
   | 这是一个profiles列表,可以通过各种方式激活,并可以修改构建过程。
   | settings.xml中提供的Profiles旨在提供本地计算机特定的路径和存储库位置,以允许构建在本地环境中工作。
   |
   | 例如,如果你有一个集成测试插件 - 比如,cactus这样的 -- 需要知道你的Tomcat实例的安装位置,
   | 你可以在这里提供一个变量,以便在构建过程中取消引用该变量来配置cactus插件。
   |
   | 如上所述,可以通过多种方式激活Profiles。稍后将讨论一种方法——本文档的ActiveProfiles部分(settings.xml)。
   | 另一种方法本质上依赖于对系统属性的检测,要么匹配属性的特定值,要么只测试其存在性。
   | Profiles也可以由JDK版本前缀激活,其中值“1.4”可能在JDK版本“1.4.2_07”上执行构建时激活配置文件。
   | 最后,可以直接从命令行指定活动Profiles列表。
   |
   | 注意:对于在settings.xml中定义的profiles,您只能指定工件存储库、插件存储库和自由形式的属性,
   |      以用作POM中插件的配置变量。
   |
   |-->
  <profiles>
    <!-- profile 
     | 指定要使用上述的一种或多种机制激活的构建过程的一组介绍。
     | 为了继承,以及要通过<activatedprofiles/>标签或命令行激活profiles的目的,profiles必须具有唯一的ID。
     |
     | profile 标识的一个被鼓励的最佳实践是对 profiles 使用一致的命名约定,
     | 例如'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', 等。
     | 这将使您更直观地了解引入的profiles集正在尝试完成的工作,特别是当您只有一个profile ID列表用于调试时。
     |
     | 这个profile示例使用JDK版本来触发激活,并提供一个特定于JDK的repo。
    <profile>
      <id>jdk-1.4</id>

      <activation>
        <jdk>1.4</jdk>
      </activation>

      <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
    -->

    <!--
     | 这是另一个profile,由系统属性'target-env'及值为'dev'激活,
     | 它提供了Tomcat实例的特定路径。 要使用它,您的插件配置可能假设如下:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | 注意:如果您只是想在任何人将'target-env'设置为任何内容时注入此配置,您可以在激活属性中取消<value/>。
     |
    <profile>
      <id>env-dev</id>

      <activation>
        <property>
          <name>target-env</name>
          <value>dev</value>
        </property>
      </activation>

      <properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>
    </profile>
    -->
  </profiles>

  <!-- activeProfiles 活动的概述文件
   | 所有构建操作都处于活动状态的profiles列表。
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

推荐镜像

	<mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>central</mirrorOf>
		<name>Nexus aliyun</name>
		<url>https://maven.aliyun.com/repository/central</url>
	</mirror>
	<mirror>
		<id>nexus-aliyun-google</id>
		<mirrorOf>central</mirrorOf>
		<name>Nexus aliyun google</name>
		<url>https://maven.aliyun.com/repository/google</url>
	</mirror>
	<mirror>
		<id>nexus-aliyun-jcenter</id>
		<mirrorOf>central</mirrorOf>
		<name>Nexus aliyun jcenter</name>
		<url>https://maven.aliyun.com/repository/jcenter</url>
	</mirror>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值