settings.xml的作用
settings.xml文件是用来设置maven参数的配置文件,例如本地仓库,远程仓库,jdk等 ,settings.xml是全局配置文件,pom只是该项目的局部配置文件
settings.xml的位置
settings有两个存放位置()
- 全局配置:${mave本地安装路径}/conf/settings.xml (此setting是安装maven自带的)
- 用户配置:${user.home}/.m2/settings.xml (刚装,maven是没有此路径,用户后期在idea设置的路径)
note:全局配置一旦修改影响所有用户,maven如果作升级,要提前备份全局的setting,一般情况下不推荐配置全局的settings.xml
配置优先级
- 全局配置优先用户配置,pom.xml>user settings.xml> maven settings.xml
- 如果三者都在,合并三者,相同的优先级高的覆盖优先级低的
jar包下载流程
配置仓库的四个地方
- pom.xml <repositories> 局域网仓库
- settings的<profile> 局域网仓库
- settings的<mirror> 镜像仓库
- central的pom-4.0.0.xml 中央仓库
没有配镜像仓库,jar包下载会先去本地仓库,没有再去设置的局域网仓库,再没有再去中央仓库下载jar
配置了镜像仓库,jar包下载会先去本地仓库,没有就去镜像仓库取,在没有就不下载,不会再去central下载
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/>-----表示maven是否需要和用户交互以获得输入
-
<usePluginRegistry/>--------maven是否需要使用plugin-registry.xml文件来管理插件版本
-
<offline/>---------表示maven是否需要在离线模式下运行
-
<pluginGroups/>----------当插件的组织id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表
-
<servers/>--------安全认证
-
<mirrors/>---------镜像仓库
-
<proxies/>--------用来配置不同的代理
-
<profiles/>------根据环境参数来调整构建配置的列表
-
<activeProfiles/>-----手动激活profiles的列表,按照
profile
被应用的顺序定义activeProfile