<?xml version="1.0" encoding="UTF-8"?> <!-- Maven仓库用户分为2种:当前用户、全局用户。 当前用户:需要配置${user.home}/.m2/settings.xml文件,该文件修改的是m2下面的配置文件,因此,只有单一用户才能使用这个配置文件中的设置; 全局用户:需要配置${maven.conf}/settings.xml,因为这是修改的是Maven安装目录下的配置文件,因此当前机器下所有的Maven用户都共享该配置; --> <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:表示构建系统本地仓库的路径,即Maven下载的jar存储位置; 默认放在${user.home}/.m2/repository目录下; --> <localRepository>C:\UserSoft\apache_maven_jar</localRepository> <!-- interactiveMode:表示maven是否需要和用户交互以获得输入; 如果maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认为true --> <interactiveMode>true</interactiveMode>
<!-- offline:表示maven在build的时候是否需要在离线模式下运行; 如果在构件下载、构件发布等工作时受到影响; 默认值为false,即需要连网才能工作; true代表不需要连网; 适合用于当由于网络设置原因或者安全因素,构建服务器不能连接远程仓库时的场景 --> <offline>false</offline>
<!-- pluginGroups:一组可被搜索的组织ID(groupId)列表; 当插件的组织id(groupId)没有显式提供时,Maven会根据该列表去查找插件的ID到底是什么; <pluginGroups>包含多个<pluginGroup>,而一个<pluginGroup>只能填写一个一个组织Id(groupId); 该列表默认包含了org.apache.maven.plugins、org.codehaus.mojo; --> <pluginGroups> <pluginGroup>org.apache.maven.plugins</pluginGroup> <pluginGroup>org.codehaus.mojo</pluginGroup> </pluginGroups>
<!-- proxies:通过网络,可以被使用的一组代理列表; 除去其他特殊配置,或者,命令行指定,默认激活列表中的第一个proxy; <proxies>包含多个<proxy>,毕竟这是一个列表; --> <proxies> <!-- <proxy>代理元素包含配置代理时需要的信息 <id>optional</id>代理的唯一定义符,用来区分不同的代理元素 <active>true</active>该代理是否是激活的那个。true则激活代理。当我们声明了一组代理,而某个时候只需要激活一个代理的时候,该元素就可以派上用处。 <protocol>http</protocol>代理的协议。 协议://主机名:端口,分隔成离散的元素以方便配置 <username>proxyuser</username>代理的用户名,用户名和密码表示代理服务器认证的登录名和密码 <password>proxypass</password>代理的密码,用户名和密码表示代理服务器认证的登录名和密码 <host>proxy.host.net</host>代理的主机名。协议://主机名:端口,分隔成离散的元素以方便配置 <port>80</port>代理的端口。协议://主机名:端口,分隔成离散的元素以方便配置 <nonProxyHosts>local.net|some.host.com</nonProxyHosts>不该被代理的主机名列表。该列表的分隔符由代理服务器指定,例子中使用了竖线分隔符 </proxy> --> </proxies>
<!-- servers:认证代理列表 一般,仓库的下载和部署是在pom.xml文件中的repositories 和 distributionManagement 元素中定义的, 然而,一般类似用户名、密码(有些仓库访问是需要安全认证的)等信息不应该在pom.xml文件中配置,这些信息可以配置在settings.xml中。 --> <servers> <!-- server <server>服务器元素包含配置服务器时需要的信息 <id>deploymentRepo</id>这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配 <username>repouser</username>鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码 <password>repopwd</password>鉴权密码 。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码 </server> -->
<!-- <server>服务器元素包含配置服务器时需要的信息 <id>siteServer</id>这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配 <privateKey>/path/to/private/key</privateKey>鉴权时使用的私钥位置 <passphrase>optional; leave empty if not used.</passphrase>鉴权时使用的私钥密码 </server> --> </servers>
<!-- mirrors:一组下载构件的镜像服务器列表; 用于定义一系列的远程仓库的镜像。我们可以在pom中定义一个下载工件的时候所使用的远程仓库。但是有时候这个远程仓库会比较忙,所以这个时候人们就想着 给它创建镜像以缓解远程仓库的压力,也就是说会把对远程仓库的请求转换到对其镜像地址的请求。每个远程仓库都会有一个id,这样我们就可以创建自己的 mirror来关联到该仓库,那么以后需要从远程仓库下载工件的时候Maven就可以从我们定义好的mirror站点来下载,这可以很好的缓解我们远程仓库的压力。 在我们定义的mirror中每个远程仓库都只能有一个mirror与它关联,也就是说你不能同时配置多个mirror的mirrorOf指向同一个repositoryId。 --> <mirrors> <!-- mirror <mirror>给定仓库的下载镜像 <id>mirrorId</id>该镜像的唯一标识符。id用来区分不同的mirror元素 <mirrorOf>repositoryId</mirrorOf>被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo.maven.apache.org/maven2/) 的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。 <name>Human Readable Name for this Mirror.</name>镜像名称 <url>http://my.repository.com/repo/path</url>该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL </mirror> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> --> <!-- maven中央仓库1 --> <mirror> <id>maven_repo1</id> <mirrorOf>*</mirrorOf> <name>Maven central</name> <url>http://repo1.maven.org/maven2/</url> </mirror> </mirrors>
<!-- profiles:根据环境参数来调整构建配置的列表; profile元素只包含这五个子元素是因为这里只关心构建系统这个整体而非单独的项目对象模型设置, 如果一个settings.xml中的profile被激活,它的值会覆盖任何其它定义在pom.xml中带有相同id的profile; --> <profiles> <!-- profile <profile> <id>jdk-1.4</id>profile的唯一标识 <activation>自动触发profile的条件逻辑 <jdk>1.4</jdk>jdk:表示当jdk的版本满足条件的时候激活,在这里是1.6。这里的版本还可以用一个范围来表示 <property>property:是键值对的形式,表示当Maven检测到了这样一个键值对的时候就激活该profile。 <name>target-env</name> <value>dev</value> </property> <file>file:表示当文件存在或不存在的时候激活,exists表示存在,missing表示不存在。 <missing>hello/world</missing> </file> </activation>
①activeByDefault:当其值为true的时候表示如果没有其他的profile处于激活状态的时候,该profile将自动被激活。 ②properties:用于定义属性键值对的。当该profile是激活状态的时候,properties下面指定的属性都可以在pom.xml中使用。对应profile的扩展属性列表。 maven属性和ant中的属性一样,可以用来存放一些值。这些值可以在pom.xml中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。 1. env.X: 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如,"env.PATH"指代了$path环境变量(在Windows上是%PATH%)。 2. project.x:指代了POM中对应的元素值。例如: <project><version>1.0</version></project>通过${project.version}获得version的值。 3. settings.x: 指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过 ${settings.offline}获得offline的值。 4. Java System Properties: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用该形式访问,例如 ${java.home}。 5. x: 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。 ③repositories:用于定义远程仓库的,当该profile是激活状态的时候,这里面定义的远程仓库将作为当前pom的远程仓库。它是maven用来填充构建系统本地仓库所使用的一组远程仓库。 ④pluginRepositories:在Maven中有两种类型的仓库,一种是存储工件的仓库,另一种就是存储plugin插件的仓库。pluginRepositories的定义 和repositories的定义类似,它表示Maven在哪些地方可以找到所需要的插件。和repository类似,只是repository是管理jar包依赖的仓库, pluginRepositories则是管理插件的仓库。maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其它仓库。pluginRepositories元素的 结构和repositories元素的结构类似。每个pluginRepository元素指定一个Maven可以用来寻找新插件的远程地址。 <repositories> <repository> <id>jdk14</id> <name>Repository for JDK 1.4 builds</name> <url>http://www.myhost.com/maven/jdk14</url> <layout>default</layout> <snapshotPolicy>always</snapshotPolicy> </repository> </repositories> </profile> -->
<!-- <profile> <id>env-dev</id>profile的唯一标识 <activation>自动触发profile的条件逻辑 <property>oproperty是键值对的形式,表示当Maven检测到了这样一个键值对的时候就激活该profile。 <name>target-env</name> <value>dev</value> </property> </activation> <properties>扩展属性列表 <tomcatPath>/path/to/tomcat/instance</tomcatPath> </properties> </profile> --> </profiles> <!-- activeProfiles:手动激活profiles的列表; 按照profile被应用的顺序定义activeProfile,该元素包含了一组activeProfile元素,每个activeProfile都含有一个profile id。 任何在activeProfile中定义的profile id,不论环境设置如何,其对应的profile都会被激活。如果没有匹配的profile,则什么都不会发生。 <activeProfiles> <activeProfile>alwaysActiveProfile</activeProfile> <activeProfile>anotherAlwaysActiveProfile</activeProfile> </activeProfiles> --> </settings> |
${maven.conf}/settings.xml
最新推荐文章于 2023-11-29 10:39:54 发布