千家信息网

Maven默认中央仓库settings.xml的配置详解

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"Maven默认中央仓库settings.xml的配置详解",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Maven默认中央仓库set
千家信息网最后更新 2026年11月02日Maven默认中央仓库settings.xml的配置详解

这篇文章主要讲解了"Maven默认中央仓库settings.xml的配置详解",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Maven默认中央仓库settings.xml的配置详解"吧!

Maven基础-默认中央仓库

当我们创建一个简单的Maven项目后(只需要在pom.xml配置好依赖),运行mvn clean install就可以把项目构建好,不需要我们手工下载任何jar,这全靠中央仓库的存在,它会自动从仓库下载。这个仓库的定义是在${M2_HOME}/lib/maven-2.0.10-uber.jar 里面。你可以在里面找到\org\apache\maven\project\pom-4.0.0.xml 这个文件,在这个文件里面定义了默认中央仓库的地址:

                       central             Maven Repository Switchboard             default             http://repo1.maven.org/maven2                           false                              

如果你想覆盖中央仓库的默认地址,那么这里我们就会使用的镜像了,还在setting.xml里面配置:

        …                                     maven-net-cn               Maven China Mirror               http://maven.net.cn/content/groups/public/               central                              …        

,表示只为central仓库做镜像,如果想为所有的仓库做镜像那么可以改为: *

Maven配置详解

maven2 比起maven1 来说,需要配置的文件少多了,主要集中在pom.xml和settings.xml中。 先来说说settings.xml,settings.xml对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个settings.xml,一个位于maven2的安装目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以maven2/conf下面的settings.xml就作为团队共同的配置文件。保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的自定义设置,如用户信息,所以另外一个settings.xml就作为本地配置。默认的位置为:${user.dir}/.m2/settings.xml目录中(${user.dir} 指windows 中的用户目录)。

settings.xml基本结构如下:

                     

简单介绍一下几个主要的配置因素:

localRepository

表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在${user.dir}/.m2/repository,如果需要另外设置,就换成其他的路径。

offline

如果不想每次编译,都去查找远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。

Servers

在POM中的 distributionManagement元素定义了开发库。然而,特定的username和pwd不能使用于pom.xml,所以通过此配置来保存server信息

          server001      my_login      my_password      ${usr.home}/.ssh/id_dsa      some_passphrase      664      775            
  • id:server 的id,用于匹配distributionManagement库id,比较重要。

  • username, password:用于登陆此服务器的用户名和密码

  • privateKey, passphrase:设置private key,以及passphrase

  • filePermissions, directoryPermissions:当库文件或者目录创建后,需要使用权限进行访问。参照unix文件许可,如664和775

Mirrors

表示镜像库,指定库的镜像,用于增加其他库

          planetmirror.com      PlanetMirror Australia      http://downloads.planetmirror.com/pub/maven2      central      
  • id,name:唯一的标志,用于区别镜像

  • url:镜像的url

  • mirrorOf:此镜像指向的服务id

Proxies

此设置,主要用于无法直接访问中心的库用户配置。

            myproxy      true      http      proxy.somewhere.com      8080      proxyuser      somepassword      *.google.com|ibiblio.org      
  • id:代理的标志

  • active:是否激活代理

  • protocol, host, port:protocol://host:port 代理

  • username, password:用户名和密码

  • nonProxyHosts: 不需要代理的host

Profiles

类似于pom.xml中的profile元素,主要包括activation,repositories,pluginRepositories 和properties元素 刚开始接触的时候,可能会比较迷惑,其实这是maven2中比较强大的功能。从字面上来说,就是个性配置。 单独定义profile后,并不会生效,需要通过满足条件来激活。 repositories 和pluginRepositories 定义其他开发库和插件开发库。对于团队来说,肯定有自己的开发库。可以通过此配置来定义。 如下的配置,定义了本地开发库,用于release 发布。

                  repo-local       Internal 开发库       http://192.168.0.2:8082/repo-local                      true            never            warn                                false                    default                            repo-local    Internal 开发库    http://192.168.0.2:8082/repo-local                true            never            warn            false        default        

releases, snapshots:每个产品的版本的Release或者snapshot(注:release和snapshot的区别,release一般是比较稳定的版本,而snapshot基本上不稳定,只是作为快照)

properties

maven 的properties作为placeholder值,如ant的properties。 包括以下的5种类型值:

  1. env.X,返回当前的环境变量

  2. project.x:返回pom中定义的元素值,如project.version

  3. settings.x:返回settings.xml中定义的元素

  4. java 系统属性:所有经过java.lang.System.getProperties()返回的值

  5. x:用户自己设定的值

Activation

用于激活此profile

        false        1.5                  Windows XP          Windows          x86          5.1.2600                          mavenVersion          2.0.3                          ${basedir}/file2.properties          ${basedir}/file1.properties              
  • jdk:如果匹配指定的jdk版本,将会激活

  • os:操作系统

  • property:如果maven能检测到相应的属性

  • file: 用于判断文件是否存在或者不存在

除了使用activation来激活profile,同样可以通过activeProfiles来激活

Active Profiles

表示激活的profile,通过profile id来指定。

    env-test 指定的profile id  

感谢各位的阅读,以上就是"Maven默认中央仓库settings.xml的配置详解"的内容了,经过本文的学习后,相信大家对Maven默认中央仓库settings.xml的配置详解这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

配置 仓库 中央 镜像 激活 开发 文件 用户 元素 团队 目录 代理 位置 版本 项目 学习 信息 全局 全局性 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网科技工作委员会主任 互联网科技有限公司经营范围 互联网通讯科技 没上市的科技互联网公司 互联网金融与金融科技 西安互联网科技 互联网科技媒体 西安互联网科技公司 佰商互联网科技有限公司 金融科技和互联网金融 互联网时代科技改变生活 岳阳华臻互联网科技有限公司 湖南一路畅行互联网科技 互联网与医疗科技 群盈汇互联网科技有限公司 伊宁互联网科技做什么的 宁波跨境商互联网科技有限公司 玉溪新华互联网科技怎么选 互联网领先科技成果宣传视频 上海挚品互联网科技有限公司 深圳市人人互联网科技有限公司 新华互联网科技学校 没上市的科技互联网公司 南京欣网互联网科技 苏州五指互联网络科技有限 伊宁互联网科技做什么的 互联网公司高科技产品 黑云互联网科技有限公司 西安左小互联网科技有限公司
0