首页 > 其他分享 >一站式详解Maven工程的setting文件内容

一站式详解Maven工程的setting文件内容

时间:2024-06-09 22:00:57浏览次数:20  
标签:插件 配置文件 一站式 仓库 dev Maven setting 镜像

  • maven 是目前java 常见的一款jar包管理工具,除了大家熟知的依赖管理外, maven 也可以很方便的对项目进行编译、测试,打包、部署等操作。
  • 本文将详细带大家了解一下Maven工程conf文件夹下的setting.xml 文件,需要的朋友可以参考下:
  • setting.xml 文件是 Maven 的主要配置文件,它包含了 Maven 运行时需要的配置信息。这个文件通常位于C:~/.m2/目录下。我们也可以手动指定,如下(idea举例):

  • 通过 setting 配置文件,我们可以改变参数项,来控制以上操作的具体行为,接下来我们将具体讲讲 settting 配置文件:
  • 打开setting.xml文件后  整体结构如下:

下面是各个元素的含义下面是各个元素的含义下面是各个元素的含义:

  • localRepository:本地仓库的位置,如果没有设置,Maven会使用默认的~/.m2/repository。
  • interactiveMode:交互模式的开关,如果设置为true,Maven会在需要输入时提示用户。
  • usePluginRegistry:是否使用插件注册表,如果设置为true,Maven会使用~/.m2/plugin-registry.xml文件。
  • offline:离线模式的开关,如果设置为true,Maven不会尝试连接网络。
  • pluginGroups:插件组列表,Maven会在这些组中搜索插件。
  • servers:定义了一些服务器的配置,包括服务器的 ID、用户名和密码。这些服务器通常用于发布(deploy)项目。
  • mirrors:镜像配置,可以设置Maven从哪个镜像站点下载依赖。
  • proxies:代理配置,可以设置Maven通过哪个代理服务器连接网络。
  • profiles:配置文件,可以包含一组特定的设置,如特定的代理服务器、镜像站点等。
  • activeProfiles:激活的配置文件列表,Maven会使用这些配置文件中的设置。

1. 用于指定本地仓库位置,即 jar 包下载存储的位置(使用时优先从本地仓库加载,没有时再去远程仓库加载)

  •   <localRepository>D:\xxx\mvn\repository</localRepository

2. servers 一般用于定义远程私服的认证信息:(私服目前已经几乎不再使用,可直接在官网下载依赖)

  • 在这个示例中,我们定义了一个服务器,其ID为releases,用户名为zhangsan,密码为123456。<repositories>
  •   <repository>
        <id>releases</id>
        <url>http://example.com/repo</url>
      </repository>
    </repositories>

    然后,就可以在pom.xml文件中引用这个服务器。例如,如果你想从这个服务器下载依赖,可以这样配置:

  • <distributionManagement>
      <repository>
        <id>releases</id>
        <url>scp://example.com/path/to/repo</url>
      </repository>
    </distributionManagement>

  • 在这两个例子中,元素的值与settings.xml文件中的服务器ID相匹配,所以Maven会使用对应的用户名和密码进行身份验证。

3. mirrors定义了一些镜像的配置,包括镜像的 ID、名称和 URL,通常用于下载依赖:

<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>    

当Maven需要从central仓库下载依赖时,它会检查settings.xml文件中的镜像配置,如果找到了匹配的镜像,它会从镜像站点下载依赖,而不是从原始仓库下载。

元素的值可以是一个仓库ID,也可以是一个仓库ID的列表,用逗号分隔。如果值为*,表示这个镜像是所有仓库的镜像。

值得注意的是:如果你定义了多个匹配的镜像,Maven会使用第一个匹配的镜像。

4. profiles

profiles元素用于定义一组特定的项目设置,这些设置只有在特定的条件满足时才会生效。

每个profile元素定义了一组设置,这些设置可以包括目标环境的特定配置、依赖管理、插件配置等:

<profiles>
  <profile>
    <id>development</id>
    <repositories>
      <repository>
        <id>dev-repo</id>
        <url>http://dev.example.com/maven2</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </repository>
    </repositories>
    <pluginRepositories>
      <pluginRepository>
        <id>dev-plugin-repo</id>
        <url>http://dev.example.com/maven2</url>
      </pluginRepository>
    </pluginRepositories>
  </profile>
</profiles>

在这个示例中,我们在development配置文件中定义了一个repositories元素和一个pluginRepositories元素。

  • repositories元素用于定义项目的依赖仓库。这里,我们定义了一个仓库dev-repo,其URL为dev.example.com/maven2 当Maven处理项目的依赖时,它会从这个仓库下载依赖。
  • pluginRepositories元素用于定义项目的插件仓库。这里,我们定义了一个插件仓库dev-plugin-repo,其URL为dev.example.com/maven2 当Maven处理项目的插件时,它会从这个仓库下载插件。
  • 其中,releasessnapshots用于控制Maven是否从这个仓库下载release版本和snapshot版

5. activeProfiles 

结合 pofiles 元素,activeProfiles主要用于指定默认激活的Profile:

  <activeProfiles>
    <activeProfile>development</activeProfile>
  </activeProfiles>

到此这篇关于一文带你深入了解Maven setting文件的文章就介绍到这了,更多相关Maven setting文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

标签:插件,配置文件,一站式,仓库,dev,Maven,setting,镜像
From: https://blog.csdn.net/weixin_55629492/article/details/139566039

相关文章

  • 在本地的maven仓库中有所需要的依赖包,为何还会远程下载依赖
    在平时开发中我们经常会遇见这样的问题:明明本地有需要的依赖包,但是maven还是会从远程仓库拉取,如果远程仓库有需要的包还好,如果没有,或者无网络环境下没法访问远程仓库,那就直接报错,走不下去了。其实这很好处理的:原因:在本地仓库的每个依赖包都存在这样的文件:_remote.repositories......
  • 【30天精通Prometheus:一站式监控实战指南】第16天:snmp_exporter从入门到实战:安装、配
    亲爱的读者们......
  • 在settings加入AUTHENTICATION_BACKENDS设置导致root用户无法登录问题
    是因为后台没有实现get_user认证导致get_user方法的作用:会话管理:当用户登录后,Django会在会话中存储用户的ID。每次请求时,Django会调用get_user方法来从会话中获取用户ID并加载用户对象。这确保了每个请求都能正确识别已登录的用户。处理请求中的用户:Django需要从......
  • Could not find artifact com.mysql:mysql-connector-j:pom:8.0.36 in central (https
    遇到修改依赖项的MySQL版本结果说找不到依赖项解决方法确保MySQL版本正确降低依赖项的MySQL版本,修改后更新即可以我的MySQL版本举例,可以降低MySQL版本到依赖项支持的版本<dependency><groupId>com.mysql</groupId><artifactId>m......
  • 使用maven搭建父工程与子工程
    父/子工程的作用:1.依赖管理2.配置信息共享3.模块化4.版本控制5.提高重用性可维护性 什么是dependencyManagement:maven中的一个元素,用于集中管理项目中的依赖版本解决了多个子模块中重复配置的问题,可有效减少maven的版本冲突问题使用dependencyManagement后,无需在子模块......
  • tools maven引入 maven tools.jar
    怎么用javadoc和Doclet配合解析自己想要的注释(链接)。既然是一个工具,自然就要生成可执行的jar包。这貌似是一个很合理的要求,然后坑就来了。我上篇说的是直接复制的tool.jar到lib包下面,添加进资源包就可以了,但是maven项目肯定不能这样做的,这样不规范。我在网上去搜索了tools.jar的......
  • JAVA开发之maven安装
    一、maven下载官网地址:https://maven.apache.org/download.cgi最新版maven,最好选择3.8版本以上其他版本maven:二、安装下载完成后直接解压三、环境变量配置重复的配置,我就不详细说了......
  • [行业原型] 汽车供应链多地分销一站式云端解决方案
    互联网改变了企业经营模式、竞争环境,同时还在改变企业的交易方式,影响着企业间的协作。全球化电子商务环境下,传统的供应链管理模式不能适应新环境下供应链管理要求,新的供应链管理模式—eSCM。eSCM是将分销管理、客户资源管理、供应商资源管理和电子商务融合到基于互联网的电......
  • Maven实战案例:搭建微服务Maven工程架构
    1.1项目需求和结构分析需求案例:搭建一个电商平台项目,该平台包括用户服务、订单服务、通用工具模块等。项目架构:1.用户服务:负责处理用户相关的逻辑,例如用户信息的管理、用户注册、登录等。2.订单服务:负责处理订单相关的逻辑,例如订单的创建、订单支付、退货、订单查看等。......
  • Could not transfer artifact xxx.yyy from/to maven-default-http-blocker (http://0
    maven依赖下载,报Couldnottransferartifactxxx.yyyfrom/tomaven-default-http-blocker(http://0.0.0.0/):Blockedmirrorforrepositories:yyyy之类的错,上网搜了下https://blog.csdn.net/oscar999/article/details/131237101,发现settings.xml配置了如下片段。<mirror>......