1 首先,setting.xml一般存在与两个地方:maven的安装目录/conf/,和${user.home}/.m2/下。他们的区别是在maven安装目录下的setting.xml是所有用户都可以应用的配置,而user.home下的可想而知就是针对某一用户的配置(推荐是在user.home下)。如果两个都进行了配置,则在应用的时候会将两个配置文件进行中和,而且user.home下的setting.xml优先级大于maven安装目录下的。

2 setting.xml文件中顶层元素一览:

  1. <span style="font-family:Microsoft YaHei;"><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  4. http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <localRepository/>
  6. <interactiveMode/>
  7. <usePluginRegistry/>
  8. <offline/>
  9. <pluginGroups/>
  10. <servers/>
  11. <mirrors/>
  12. <proxies/>
  13. <profiles/>
  14. <activeProfiles/>
  15. </settings></span>

下面对各个元素进行解析:

2.1 localRepository

建构系统本地仓库的路径,不设置的话默认是在{user.home}/.m2/repository/下,如果想要系统所有用户共用一个本地仓库,则可以在maven安装目录下的setting.xml中进行设置

2.2 interactiveMode

指定Maven是否试图与用户交互来得到输入,默认是true

2.3 usePluginRegistry

如果设置为true,则在{user.home}/.m2下需要有一个plugin-registry.xml来对plugin的版本进行管理。默认是false

2.4 offline

如果不想每次编译的时候都去查找远程中心仓库,就需要设置为true,但前提是本地仓库中已有需要的jar包,默认是false

2.5 pluginGroups

该元素包含一系列的pluginGroup元素,每个pluginGroup又有一个groupId,当一个plugin被使用而在命令行中哦给没有指定groupId的时候,就会查询这个列表

2.6 Servers

maven除了一般的本地仓库和中央仓库之外,还有一种是远程仓库,一般部署在局域网中供Maven用户使用(成为私服),当maven需要下载构件的时候,它先从私服中请求,如果没有,再到外部的中央仓库中下载,同时下载的构件会在下载到私服中供以后使用,或者用户可以将将构件上传到私服中。

私服还有一个好处就是存放组织内部自己生成的私有构件,这类构件不可能从外部的中央仓库获取,但是组织内部用户又需要共享使用,这个时候就需要私服了。

一般私服建立完毕之后不需要认证就可以访问,但是处于安全方面的考虑,需要提供认证信息才能访问这些私服,这时就需要使用servers元素(需要注意的是配置私服的信息是在pom文件中,但是认证信息则是在setting.xml中,这是因为pom文件往往是被提交到代码仓库中供所有成员访问的,而setting.xml是存放在本地的,这样是安全的)。

而maven是根据pom中的repositories和distributionMnagement元素来决定,然后运行maven clean deploy,这样maven就根据pom中的配置将自己的第三方构件部署在私服上供组织内其他用户使用(注意maven clean deploy和maven clean install的区别:deploy是将该构件部署在私服中,而install是将构件存入自己的本地仓库中)。

2.7 morriors

显而易见,镜像,也供maven下载jar包

2.8 proxies

当用户 用代理登录下载时需要配置(但是我现在是在使用代理,可是还是没有作用,原因未知?)

2.9 profiles(??)

2.10 activeProfiles(??)

maven setting.xml文件配置详情的更多相关文章

  1. Maven setting.xml 文件配置

    全局配置: ${M2_HOME}/conf/settings.xml (配置环境变量  新建 M2_HOME    安装目录到版本名那里(D:\apache-maven-3.0.2) 编辑path 环 ...

  2. Maven setting.xml文件详解(转)

    maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.home}/.m2/setting ...

  3. maven setting.xml 中文配置详解(全配置)

    春节假期在家养病,乘有时间整理了下之前的知识——知识贵在归纳总结. 参照了官方文档,针对其中的一些未描述详尽的内容翻查了不少资料,补充到了配置文件中,同时再加上一些说明.例子,方便查阅. 内容虽然比较 ...

  4. Maven setting.xml 文件剖析

    全局配置: ${M2_HOME}/conf/settings.xml (配置环境变量  新建 M2_HOME    安装目录到版本名那里(D:\apache-maven-3.0.2) 编辑path 环 ...

  5. Maven setting.xml简易配置

    使用国内阿里云的下载源: <?xml version="1.0" encoding="UTF-8"?> <settings> <l ...

  6. maven的setting.xml文件中只配置本地仓库路径的方法

    maven的setting.xml文件中只配置本地仓库路径的方法 即:settings标签下只有一个 localRepository标签,其他全部注释掉即可 <?xml version=&quo ...

  7. Maven出现User setting file does not exist ...\.m2\setting.xml的问题解决(同时也解决用户.m2目录下无setting.xml文件)

    如果Eclipse中出现User setting file does not exist ...\.m2\setting.xml这样的问题,解决方法如下: 1.拷贝%M2_HOME%/conf/set ...

  8. pom.xml文件配置maven仓库地址

    中央仓库就是Maven的一个默认的远程仓库,Maven的安装文件中自带了中央仓库的配置($M2_HOME/lib/maven-model-builder.jar) 在很多情况下,默认的中央仓库无法满足 ...

  9. 基于nexus私服配置项目pom.xml和maven settings.xml文件

    备注:搭建nexus私服请参考上一篇文章基于Docker搭建Maven私服Nexus,Nexus详解 一:将jar发送到nexus私服务器 1.pom.xml文件添加配置 pom.xml文件中的这个版 ...

随机推荐

  1. N4复习考试总结

    一つ(ひとつ) 半分(はんぶん) 煙草(たばこ)を吸う(すう) 玄関(げんかん) ナイフ(刀)     財布(さいふ) 浅い(あさい) 薄い(うすい) 牛乳(ぎゅうにゅう) 皿(さら) 七日(なのか) ...

  2. NoSQL与其常见的产品

    一. 什么是NoSQL NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",它是一种非关系型数据库. 二. 为什么要有NoSQL 在现代的计算系统上每 ...

  3. Linux常用命令及Shell的简单介绍

    一.linux命令   1.查看指令的参数搭配: man 指令名称   2.基础指令 ls  列出当前目录下的所有文档的名称(文档指的是文件和文件夹) 常用参数搭配: ls -l 列出文档详细信息 l ...

  4. python多线程之threading、ThreadPoolExecutor.map

    背景: 某个应用场景需要从数据库中取出几十万的数据时,需要对每个数据进行相应的操作.逐个数据处理过慢,于是考虑对数据进行分段线程处理: 方法一:使用threading模块 代码: # -*- codi ...

  5. Codeforces Round #575 (Div. 3) (A. Three Piles of Candies)(数学)

    A. Three Piles of Candies time limit per test1 second memory limit per test256 megabytes inputstanda ...

  6. 洛谷P2401 不等数列 题解

    可食用的题目链接 题解: 有题目得:这个题有巧做法而不是暴力模拟.废话 这个题看着像一道dp,因为可以由前一种(数据更小的推出数据更大的)推出后一种. 我们设已经得到了n-1个数的总方法(1~n-1) ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(1)|开篇]

    今天我们来开一个新系列. 从零学习rustlang. 简单介绍下rustlang: Rust 是一门系统级编程语言,被设计为保证内存和线程安全,防止段错误产生.作为系统级编程语言,它的基本理念是 “零 ...

  8. pymysql ,主键, 索引

    目录 一.pymysql模块的使用 1. 安装pymysql 2. 连接MySQL 3. sql注入问题 二.索引 1. 什么是索引 2. 索引有什么用 3. 索引的底层原理 4. 主键 5. MyS ...

  9. uwsgi 的启动、停止、重启

    ## 一.概念释义### WSGI WSGI 是一个Web服务器(如nginx)与应用服务器(如uWSGI)通信的一种规范(协议).官方定义是,the Python Web Server Gatewa ...

  10. Codeforces Gym 101505C : Cable Connection (计算几何)

    题目链接 题意:给出第一象限的N个点,存在一直线x/a+y/b=1(a>0,y>0)使得所有点都在这条直线下面,求 min{sqrt(a^2+b^2)} 显然,这样的直线必然经过这N个点中 ...