maven中的settings.xml详解

戚薇 Maven教程 发布时间:2022-07-17 19:33:47 阅读数:2917 1
下文笔者讲述maven中settings.xml的功能详细简介说明,如下所示

settings.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/>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors/>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>

LocalRepository

功能:
   设置本地仓库的路径

默认值:
   ${user.home}/.m2/repository

例:
<localRepository>D:\test\repository</localRepository>

InteractiveMode

功能:
  表示maven是否需要和用户交互以获得输入

默认值:true

UsePluginRegistry

功能:
  maven是否需要使用plugin-registry.xml文件来管理插件版本

默认:false

Offline

功能:
  表示maven是否需要在离线模式下运行

默认:false

注:在网络不好或安全因素时,可以设置为True

PluginGroups

功能:
   当插件的groupid没有显示提供时,提供默认的groupId列表

默认:
   org.apache.maven.plugins  和  org.codehaus.mojo

proxies

功能:
  Maven在进行联网时需要使用到的代理

例:
<proxies>
  <proxy>
      <id>xxx</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>用户名</username>
      <password>密码</password>
      <host>代理服务器地址</host>
      <port>代理服务器的端口</port>
      <nonProxyHosts>不使用代理的主机</nonProxyHosts>
  </proxy>
</proxies>

servers

功能:
  配置deploy时远程服务器的用户名和密码
  (上传项目时,
   在POM中的distributionManagement的URL的验证信息
   有些远程服务器也需要用户密码才能下载依赖)

例:
 <servers>
    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

Mirrors

功能:
  镜像仓库(加速jar下载)
例:
<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

profiles

作用:配置多种环境参数的profile

<profiles>
    <profile>
      <!-- profile的唯一标识 -->
      <id>nexus</id>
      <!-- 自动触发profile的条件逻辑 -->
      <activation />
      <!-- 扩展属性列表 -->
      <properties />
      <!-- 远程仓库列表 -->
      <repositories />
      <!-- 插件仓库列表 -->
      <pluginRepositories />
    </profile>
  </profiles>

9.1 activation:自动触发该profile的条件逻辑
例:
<activation>
  <!--profile默认是否激活的标识 -->
  <activeByDefault>false</activeByDefault>
  <!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。 -->
  <jdk>1.5</jdk>
  <!--当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。 -->
  <os>
    <!--激活profile的操作系统的名字 -->
    <name>Windows XP</name>
    <!--激活profile的操作系统所属家族(如 'windows') -->
    <family>Windows</family>
    <!--激活profile的操作系统体系结构 -->
    <arch>x86</arch>
    <!--激活profile的操作系统版本 -->
    <version>5.1.2600</version>
  </os>
  <!--如果Maven检测到某一个属性(其值可以在POM中通过${name}引用),其拥有对应的name = 值,Profile就会被激活。如果值字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段 -->
  <property>
    <!--激活profile的属性的名称 -->
    <name>mavenVersion</name>
    <!--激活profile的属性的值 -->
    <value>2.0.3</value>
  </property>
  <!--提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。 -->
  <file>
    <!--如果指定的文件存在,则激活profile。 -->
    <exists>${basedir}/file2.properties</exists>
    <!--如果指定的文件不存在,则激活profile。 -->
    <missing>${basedir}/file1.properties</missing>
  </file>
</activation>

9.2 properties:存放变量,如果该profile激活,那么在pom.xml 可以用${xx}来使用
例:
<properties>
        <nexus.ip>http://127.0.0.1:8082</nexus.ip>
</properties>
pom文件里可以使用${nexus.ip}这个变量

9.3 Repositories:下载依赖的jar的远程仓库的列表
注意:一般包括releases(稳定版)和snapshots(快照版)
例:
<repositories>
        <repository>
          <id>central</id>
          <url>${nexus.ip}/repository/maven-public/</url>
          <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
</repositories>

9.4 pluginRepositories:发现下载插件的远程仓库列表
例:
<pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>${nexus.ip}/repository/maven-public/</url>
          <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
            </releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>

ActiveProfiles

功能:
  手动激活profiles的列表
  可以同时激活多个profile
 如果有相同属性,后面的会覆盖前面的

例:
<activeProfiles>
    <activeProfile>nexus</activeProfile>
</activeProfiles>
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Maven/202207/3996.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者