maven使用+setting.xml

本文详细介绍了Maven配置文件settings.xml的各个组成部分,包括环境变量配置、插件管理、服务器认证、镜像设置、代理配置、配置文件激活条件及远程仓库策略等内容。

下载安装包:http://maven.apache.org/download.cgi

配置环境变量:**/apache-maven-3.5.2/bin      测试:mvn -v

设置setting.xml

  •     顶层标签

  <localRepository>这个值是这个构建系统的本地仓库的路径,默认值:$ {user.home}/.m2/ repository。这个元素对于主构建服务器特别有用,允许所有登录用户从一个公共的本地存储库进行构建。

   <interactiveMode>:真正的如果Maven的应该尝试与用户输入交互,假如果不是。默认为true。

   <usePluginRegistry>:如果Maven应该使用$ {user.home} /.m2/plugin-registry.xml文件来管理插件版本,则为true,默认为false。请注意,对于当前版本的Maven 2.0,不应该依赖plugin-registry.xml文件。现在考虑休眠。

    <offline>:如果此构建系统应以离线模式运行,则为true,默认为false。由于网络设置或安全原因,此元素对于构建无法连接到远程存储库的服务器非常有用。

  •  插件

    <pluginGroups>:这个元素包含一个pluginGroup元素的列表

    <pluginGroup>:<pluginGroups>的子标签,每个元素都包含一个groupId。当使用插件并且在命令行中没有提供groupId时,搜索列表。这个列表自动包含org.apache.maven.plugins和org.codehaus.mojo。

  • 服务

下载和部署的repositories(存储库) 由POM 的repositories 和distributionManagement元素定义。但是,某些设置(如用户名和密码)不应与pom.xml一起分发。这种类型的信息应该在settings.xml中的构建服务器上存在。

<servers>

    <server>

//这是与Maven试图连接的资源库/镜像的id元素相匹配的服务器(不是用户登录的)的ID。

        <id>server001</id>

//这些元素显示为一对,表示向该服务器进行身份验证所需的登录名和密码。

        <username>my_login</username>

        <password>my_password</password>

//和前面的两个元素一样,如果需要的话,这一对指定一个私钥的路径(默认是$ {user.home} /。ssh / id_dsa)和密码。该密码和密码的元素可能在将来被外部化,但现在他们必须设置在纯文本的settings.xml文件。

        <privateKey>${user.home}/.ssh/id_dsa</privateKey>

        <passphrase>some_passphrase</passphrase>

//在部署中创建存储库文件或目录时,这些是要使用的权限。每个的合法值是一个三位数的数字,相当于* nix文件的权限,即。664或775。

        <filePermissions>664</filePermissions>

        <directoryPermissions>775</directoryPermissions>

        <configuration></configuration>

        </server>

</servers>

  • 镜像

<mirrors>

    <mirror>

//这个镜像的唯一标识符和用户友好的名字。该id用于区分镜像元素,并在连接镜像时从<servers>部分选择相应的凭据

        <id>planetmirror.com</id>

        <name>PlanetMirror Australia</name>

//这个镜像的基本URL。构建系统将使用此URL来连接到存储库,而不是原始存储库URL。

        <url>http://downloads.planetmirror.com/pub/maven2</url>

//这是一个镜像的存储库的ID。例如,要指向Maven 中央存储库(https://repo.maven.apache.org/maven2/)的镜像,请将此元素设置为中央。更高级的映射,如repo1,repo2或*,!inhouse也是可能的。这不能与镜像ID匹配。

        <mirrorOf>central</mirrorOf>

    </mirror>

</mirrors>

  • 代理

<proxies>

    <proxy>

//此代理的唯一标识符。这用于区分代理元素。

        <id>myproxy</id>

//如果此代理处于活动状态,则为true。这对于声明一组代理是有用的,但是一次只能激活一个代理。

        <active>true</active>

//代理的协议://主机:端口,分离成离散的元素。

        <protocol>http</protocol>

        <host>proxy.somewhere.com</host>

        <port>8080</port>

//这些元素显示为一对,表示对此代理服务器进行身份验证所需的登录名和密码。

        <username>proxyuser</username>

        <password>somepassword</password>

//这是不应代理的主机列表。列表的分隔符是代理服务器的预期类型; 上面的例子是管道分隔的 - 逗号分隔也是常见的。

        <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>

    </proxy>

</proxies>

  • 简介

<profiles>

    <profile>

        <id>test</id>

        <activation>

            <activeByDefault>false</activeByDefault>

//激活在jdk元素中有一个以Java为核心的内置检查。如果测试在与给定的前缀匹配的jdk版本号下运行,这将激活。在上面的例子中,1.5.0_06将匹配。

            <jdk>1.5</jdk>

//os元素可以定义上面显示的一些操作系统特定的属性。

            <os>

                <name>Windows XP</name>

                <family>Windows</family>

                <arch>x86</arch>

                <version>5.1.2600</version>

            </os>

//如果Maven检测到对应的name = value对的一个属性(可以在POM中取消引用的值{$ name}),该配置文件将激活。

            <property>

                <name>mavenVersion</name>

                <value>2.0.3</value>

            </property>

//一个给定的文件名可能通过文件的存在或缺少文件来激活配置文件。

            <file>

                <exists>${basedir}/file2.properties</exists>

                <missing>${basedir}/file1.properties</missing>

            </file>

        </activation>

    </profile>

</profiles>

  • 属性

如果此配置文件处于活动状态,则可以从POM访问属性$ {user.install}。

<profiles>

    <profile>

        <properties>

            <user.install>${user.home}/our-project</user.install>

        </properties>

    </profile>

</profiles>

存储库是Maven用来填充构建系统的本地存储库的项目的远程集合。从这个本地存储库,Maven称之为插件和依赖关系。不同的远程存储库可能包含不同的项目,在活动配置文件下,可能会搜索匹配的发行版或快照工件。

<profiles>

    <profile>

        <repositories>

            <repository>

                <id>codehausSnapshots</id>

                <name>Codehaus Snapshots</name>

//releases、snapshots这些是每种类型的工件(发行版或快照)的策略。有了这两套,一个POM就可以在一个存储库中改变每个类型的策略,而与另一个类型的策略无关。例如,可能决定只启用快照下载,可能用于开发目的。

//enabled对于是否为相应类型(发行版或快照)启用此存储库,为true或false。

//updatePolicy该元素指定更新尝试发生的频率。Maven会将本地POM的时间戳(存储在存储库的maven-metadata文件中)与远程进行比较;选项是:始终always,每天(默认)daily ,区间interval:X(其中X是以分钟为单位的整数)或从不never。

//checksumPolicy当Maven将文件部署到资源库时,它也会部署相应的校验和文件。您的选择是忽略,失败或警告缺少或不正确的校验和。

                <releases>

                    <enabled>false</enabled>

                    <updatePolicy>always</updatePolicy>

                    <checksumPolicy>warn</checksumPolicy>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                    <updatePolicy>never</updatePolicy>

                    <checksumPolicy>fail</checksumPolicy>

                </snapshots>

                <url>http://snapshots.maven.codehaus.org/maven2</url>

                <layout>default</layout>

            </repository>

        </repositories>

        <pluginRepositories>

        ...

        </pluginRepositories>

    </profile>

</profiles>

  • 活动配置文件

每个元素都有一个配置文件 ID的值。任何轮廓 ID定义为activeProfile将被激活,reguardless的任何环境设置。如果没有找到匹配的配置文件,将不会发生 例如,如果env-test是一个activeProfile,那么一个pom.xml文件(或者带有一个corrosponding id的profile.xml文件)将被激活,如果没有找到这个配置文件,那么执行将继续正常。

<activeProfiles>

    <activeProfile>env-test</activeProfile>

</activeProfiles>

 

转载于:https://my.oschina.net/ioo/blog/1587563

### Maven `settings.xml` 示例配置文件 以下是标准的 Maven `settings.xml` 文件示例,该文件可以放置在两个位置:Maven 安装目录下的 `conf/settings.xml` 或者用户主目录下的 `.m2/settings.xml`。此文件主要用于定义镜像、服务器认证信息、代理设置以及其他构建相关的参数。 ```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 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 配置本地仓库路径 --> <localRepository>/path/to/local/repo</localRepository> <!-- 配置交互模式,默认是非交互模式 --> <interactiveMode>true</interactiveMode> <!-- 使用的默认插件组列表 --> <pluginGroups> <pluginGroup>org.apache.maven.plugins</pluginGroup> <pluginGroup>org.codehaus.mojo</pluginGroup> </pluginGroups> <!-- 配置服务器认证信息 --> <servers> <server> <id>nexus-releases</id> <username>deployment</username> <password>deploy123</password> </server> </servers> <!-- 配置镜像 --> <mirrors> <mirror> <id>aliyun-mirror</id> <name>Aliyun Maven Mirror</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <!-- 配置激活的 profile 列表 --> <activeProfiles> <activeProfile>dev-profile</activeProfile> </activeProfiles> <!-- 配置 profiles --> <profiles> <profile> <id>dev-profile</id> <properties> <tomcatPath>/path/to/tomcat/instance</tomcatPath> </properties> <repositories> <repository> <id>internal-repository</id> <name>Maven Internal Repository</name> <url>https://repo.internal.company.com/maven2</url> </repository> </repositories> </profile> </profiles> </settings> ``` 上述示例展示了如何通过 `settings.xml` 来管理多个方面的 Maven 行为[^1]。其中包括: - **本地仓库路径**:指定自定义的本地仓库存储位置。 - **服务器认证信息**:提供访问远程私有仓库所需的用户名和密码。 - **镜像配置**:重定向某些仓库请求到特定 URL,例如阿里云 Maven 镜像[^3]。 - **激活 Profile** 和 **Properties 设置**:允许基于环境变量或其他条件动态调整构建行为[^2]。 #### 注意事项 如果需要修改或扩展以上配置,请确保 XML 结构保持有效并遵循官方 XSD 模式约束。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值