Maven--settings.xml配置详解

这篇具有很好参考价值的文章主要介绍了Maven--settings.xml配置详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、settings.xml配置文件简介

Maven的settings.xml文件是一个全局配置文件,用于定义Maven的参数和配置。这个文件包含了Maven的一些高级配置,比如本地仓库的位置、代理设置、认证信息等。settings.xml文件位于Maven的安装目录下的conf文件夹中,在使用Maven的时候如果未指定settings.xml文件的位置,默认使用的是用户目录下面的.m2子目录中的settings.xml文件。

二、与pom.xml文件区别

  1. 作用范围不同:settings.xml文件是Maven的全局配置文件,作用于所有使用了这个Maven的项目;而pom.xml文件则是项目级别的配置文件,仅能作用于各自的项目。
  2. 功能不同:settings.xml文件主要用于Maven的各种设置,如用户信息、代理设置、本地仓库位置、远程仓库位置、Maven的全局属性等;而pom.xml文件则是用于定义项目的元数据和依赖关系等。

三、settings.xml文件中常用元素解析

3.1 settings.xml文件中常用的顶级元素
<?xml version="1.0" encoding="UTF-8"?>
<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></localRepository>
  <interactiveMode></interactiveMode>
  <offline></offline>
  <pluginGroups></pluginGroups>
  <proxies></proxies>
  <servers></servers>
  <mirrors></mirrors>
  <profiles></profiles>
  <activeProfiles></activeProfiles>
</settings>
3.2 LocalRepository

<localRepository>元素用于指定Maven本地仓库的路径。当Maven在进行构建时用于查找和存储项目依赖的位置。默认情况下,Maven的本地仓库路径是~/.m2/repository中,可以通过<localRepository>元素来设置其他的本地仓库路径,具体配置如下:

<localRepository>/path/to/local/repo</localRepository>
3.3 InteractiveMode

<interactiveMode>元素用于控制Maven的交互模式。当<interactiveMode>元素被设置为true时,Maven在执行构建过程时会显示进度条并等待用户的输入。当<interactiveMode>元素被设置为false时,Maven在执行构建过程时不会显示进度条,也不会等待用户的输入,而是会立即开始构建过程。默认情况下,Maven的<interactiveMode>元素的值是true;有些特殊场景,例如在自动化构建过程中不需要进行交互模式,这时我们可以将<interactiveMode>元素的值设置为false。

<interactiveMode>false</interactiveMode>
3.4 offline

<offline>元素用于控制Maven是否在离线模式下工作。默认是false,使用在线模式,Maven在执行构建过程时会从远程仓库下载依赖,而不会从本地仓库查找和使用依赖。当<offline>元素被设置为true时,使用离线模式,Maven在执行构建过程时只会从本地仓库查找和使用依赖,不会从远程仓库下载依赖。在某些情况下,我们可能希望Maven在执行构建过程时不从远程仓库下载依赖,例如在网络不稳定或没有网络连接时。这时,我们可以将<offline>元素的值设置为true。

<offline>true</offline>
3.5 pluginGroups

<pluginGroups>元素用于定义Maven插件搜索的组。Maven会根据<pluginGroups>元素中定义的组来搜索和加载相关的插件。<pluginGroups>元素是一个列表,每个元素都包含一个<pluginGroup>元素,用于指定一个或多个插件组的名称。插件组是一组相关的插件,它们通常被组织在一起,以便在构建项目时能够方便地使用。

<settings>
 <pluginGroups>
 	<pluginGroup>com.example.plugins</pluginGroup>
 </pluginGroups>
 ...
</settings>
3.6 proxies

<proxies>元素用于配置Maven的代理设置。通过代理设置允许Maven通过代理服务器访问互联网,这对于在某些网络环境下构建项目非常有用。<proxies>元素是一个列表,每个元素都包含一个<proxy>元素,用于指定一个代理服务器的详细信息。<proxy>元素包含以下属性:

  • id:代理的唯一定义符,用来区分不同的代理元素。
  • active:该代理是否激活。true则激活代理;如果你不需要使用代理,可以将active设置为false。
  • protocol:代理服务器使用的协议。(如http或https)
  • host:代理服务器的主机名或IP地址。
  • port:代理服务器的端口号。
  • username(可选):代理服务器的用户名。
  • password(可选):代理服务器的密码。
  • nonProxyHosts(可选):指定哪些主机不使用代理服务器。
<settings>
 <proxies>
 	<proxy>
   		<id>proxy-name</id>
   		<active>true</active>
   		<protocol>http</protocol>
   		<host>proxyhost</host>
   		<port>8080</port>
   		<username>proxyuser</username>
   		<password>proxypassword</password>
   		<nonProxyHosts>localhost|*.example.com</nonProxyHosts>
 	</proxy>
 </proxies>
 ...
</settings>
3.7 servers

<servers>元素用于定义远程仓库的服务器信息。这些远程仓库可以是中央仓库或者是团队内部的私有仓库。Maven在进行构建时,会从这些远程仓库中查找和下载项目依赖。有些远程仓库下载依赖时是需要安全认证的,这些安全认证的信息就是在<server>元素中设置的。<server>元素包含以下属性:

  • id:定义服务器的唯一标识符。
  • url:远程仓库的URL地址。
  • username:访问远程仓库时使用的用户名。
  • password:访问远程仓库时使用的密码。
<settings>
 <servers>
 <server>
   <id>sonatype-nexus-releases</id>
   <username>admin</username>
   <password>admin123</password>
   <url>http://nexus.sonatype.org/content/repositories/releases/</url>
 </server>
 </servers>
 ...
</settings>
3.8 mirrors

<mirrors>元素用于配置Maven的镜像仓库。镜像仓库是一个本地的、用于存储远程仓库内容的缓存。Maven会首先尝试从远程仓库下载依赖,如果远程仓库不可用或访问受限,Maven就会从镜像仓库获取依赖。<mirrors>元素是一个列表,每个元素都包含一个<mirror>元素,用于指定一个镜像仓库的服务器信息。一个<mirror>元素包含如下属性:

  • id:定义镜像仓库的唯一标识符。
  • url:镜像仓库的URL地址。
  • active:镜像仓库是否处于活动状态。
  • mirrorOf:要被镜像的远程仓库的ID。当远程仓库被镜像后,后续将不会再从这个远程仓库去拉取依赖,而是直接从镜像仓库的地址去拉取依赖。如果mirrorOf里面配置的是*,则配置的所有远程仓库都被镜像,任何项目所需的依赖都只会从这个镜像的地址中拉取。
<settings>
 <mirrors>
 <mirror>
   <id>nexus-mirror</id>
   <url>http://nexus.example.com/content/repositories/releases/</url>
   <mirrorOf>central</mirrorOf>
 </mirror>
 <mirror>
   <id>sonatype-oss-mirror</id>
   <url>http://oss.sonatype.org/content/repositories/releases/</url>
   <mirrorOf>central</mirrorOf>
 </mirror>
 </mirrors>
 ...
</settings>
3.9 profiles

<profiles>元素用于定义项目构建过程中使用的配置文件。这些配置文件可以在不同的环境中使用,例如开发环境和生产环境。<profiles>元素允许你为不同的环境定义不同的配置文件,从而实现环境之间的差异性。<profiles>元素是一个列表,每个元素都包含一个<profile>元素,用于定义一个全局级别的配置信息。一个<profile>元素包含如下属性:

  • id:定义配置信息的唯一标识符。
  • properties:配置文件的属性列表。
  • activation:激活配置文件所需的条件。
  • description:配置文件的描述信息。
  • repositories:远程仓库列表。
  • pluginRepositories:插件仓库列表。
<settings>
 <profiles>
 <profile>
   <id>dev</id>
   <properties>
    <myProperty>myValue</myProperty>
   </properties>
   <activation>
    <build>
     <property>
      <myProperty>myValue</myProperty>
     </property>
    </build>
   </activation>
 </profile>
 </profiles>
 ...
</settings>

pom.xml中的profile作用于当前的Maven项目,settings.xml中的profile作用于Maven的全局设置。settings.xml中的profile优先级高于pom.xml中的profile,当Maven在构建过程中遇到profile时,它会首先查找settings.xml文件中的profile,如果找到了,则使用该profile中的设置。如果settings.xml文件中没有找到,Maven才会继续在pom.xml文件中查找profile。如果在pom.xml中也定义了一个同名的profile,那么settings.xml中的profile将覆盖pom.xml中的profile。因此,为了确保profile的正确使用,建议在settings.xml中定义全局的profile设置,并在pom.xml中只使用项目特定的profile设置。

3.10 activeProfiles

<activeProfiles>元素用于指定哪些profile在当前的构建过程中被激活。每个<activeProfiles>元素可以包含一个或多个<profile>元素,每个<profile>元素都有一个id属性,用于标识该profile。当Maven在构建过程中遇到<activeProfiles>元素时,它会检查当前的构建环境是否与<activeProfiles>元素中指定的任何profile相匹配。如果匹配,则该profile被激活,并应用于当前的构建过程。文章来源地址https://www.toymoban.com/news/detail-805075.html

<settings>
 <activeProfiles>
 	<profile>
   		<id>dev</id>
 	</profile>
 </activeProfiles>
 ...
</settings>

到了这里,关于Maven--settings.xml配置详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】Maven配置文件帮助文档(settings.xml 和 pom.xml)

    以下几个属性是 settings 属性的下一级属性: localRepository interactiveMode offline pluginGroups proxies servers mirrors profiles activeProfiles localRepository:本地仓库的路径,默认值为 ${user.home}/.m2/repository interactiveMode:表示Maven是否需要和用户交互以获得输入 offline:表示Maven是否需要在离线模式

    2024年02月13日
    浏览(39)
  • 【业务功能篇65】maven加速 配置settings.xml文件 镜像

    添加阿里镜像仓

    2024年02月12日
    浏览(30)
  • maven配置远程仓库私服的服务器账号、密码

    首先需要配置远程仓库私服的服务器账号、密码,找到maven的settings.xml文件,配置server,里边的ID注意,就是标识你仓库的唯一ID,可以根据你的仓库随意起名就行。 然后找到你代码工程中的pom.xml文件,配置distributionManagement或repositories,这2个字段的区别就是 distributionManagem

    2024年02月11日
    浏览(37)
  • maven之pom.xml配置文件详解

    pom代表项目对象模型,它是Maven中工作的基本组成单位。它是一个XML文件,在项目的根目录中。pom包含的对象是使用maven来构建的,pom.xml文件包含了项目的各种配置信息。 创建一个POM之前,应该要先决定项目组(groupId),项目名(artifactId)和版本(version),因为这些属性在项目仓

    2023年04月09日
    浏览(31)
  • jdk8 maven 3.6.3 settings.xml

    localRepositoryC:Usersziyou.m2repository/localRepository mirror         idhuaweicloud/id         mirrorOf*/mirrorOf         name华为云公共仓库/name         urlhttps://mirrors.huaweicloud.com/repository/maven//url     /mirror profile       idjdk-1.8/id       activation         activeByDefaulttrue/activeByDefaul

    2024年02月12日
    浏览(31)
  • Maven 一键部署到 SSH 服务器

    利用 Maven Mojo 功能一键部署 jar 包或 war 包到远程服务器上。 在 maven 的 setting.xml 配置服务器 SSH 账号密码。虽然可以在工程的 pom.xml 直接配置,但那样不太安全。 在工程的 pom.xml配置: 如果出现“算法不正确”,那么要升级 wagon-ssh,网上都是 2.8 的,太旧了,这是最新的版本

    2024年02月11日
    浏览(38)
  • maven中JDK版本的修改,setting.xml修改以及pom.xml的文件修改

    修改已经建好的maven的JDK的版本,在父模块中修改JDK的信息 在这里先看一下本地的配置,我这里先设置的17版本 出现这种情况的解决办法 先修改根目录的setting.xml文件,将里边的JDK版本全部换为1.8,然后保存即可。将17全部换为1.8 setting.xml的路径为:D:mavenconf(这是我安装的

    2024年02月16日
    浏览(33)
  • 在Maven中发布项目到Nexus私有服务器

    Sonatype Nexus 3.61.0-02 Maven 3.9.2 运行完成后可以在nexus看到已经上传上来了

    2024年02月06日
    浏览(34)
  • maven在settings.xm和pom.xml中指定jdk版本编译

    maven的settings.xm和pom.xml都可以通过 maven.compiler.source , maven.compiler.target 这两个属性值来指定jdk版本 maven.compiler.source maven.compiler.target 在pom.xml中的位置 在settings.xml中的位置 在spring项目中, 用 java.version 来统一设置 maven的settings.xm和pom.xml也可以通过设定 maven-compiler-plugin 这个插件来

    2024年02月22日
    浏览(27)
  • Idea中maven依赖爆红解决方案(附上settings.xml文本)

    前言:         最近要以若依-前后端分离(RuoYi-Vue)项目为框架进行研发。         以SVN做版本控制,我先从小乌龟(Tortoise SVN )的版本仓库中将项目检出(checkout),检出的项目包含.svn文件用以SVN版本追踪。所以项目相关的依赖文件是事先部署完毕的,这样我就不

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包