来到新公司对很多陌生的技术一头雾水,以前在工作中没有真正使用过maven,于是强迫自己蛋定下来一个一个的突破,下面是我对maven的setting配置文件的理解,由于是现学的,难免可能会理解偏差,还请牛人路过指正。
<!--
xuze added by:添加了一些注释,利于新人理解
Date:2011年7月18日
-->
<settings>
<!-- 配置镜像 -->
<mirrors>
<mirror>
<!-- 此镜像一般用来作为公司内部开发的版本快照,作为public-snapshots仓库的镜像地址 -->
<!-- 镜像的id,id用来区分不同的mirror元素。 -->
<id>nexus-public-snapshots</id>
<!-- 被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo1.maven.org/maven2)的镜像,
就需要将该元素设置成central。这必须和中央仓库的id “central”完全一致。 -->
<mirrorOf>public-snapshots</mirrorOf>
<!-- 该镜像的URL。 -->
<url>http://repos.d.xxx.com/nexus/content/groups/public-snapshots</url>
</mirror>
<mirror>
<!-- 此镜像一般用来作为公司第三方引用基础类库镜像,是所有仓库的镜像地址 -->
<id>nexus</id>
<!-- 为*表示为所有的仓库做镜像,有了这个配置,所有的构建都会包含public组,如果你想包含public-snapshots组,
你必须添加public-snapshots这个Profile,通过在命令行使用如下的 -P 标志:$ mvn -P public-snapshots clean install -->
<mirrorOf>*</mirrorOf>
<url>http://repos.d.xxx.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<!-- settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。它包含了activation, repositories, pluginRepositories 和 properties元素。
这里的profile元素只包含这四个子元素是因为这里只关心构建系统这个整体(这正是settings.xml文件的角色定位),而非单独的项目对象模型设置。
如果一个settings中的profile被激活,它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile。 -->
<profiles>
<profile>
<id>development</id>
<!-- 仓库。仓库是Maven用来填充构建系统本地仓库所使用的一组远程项目。而Maven是从本地仓库中使用其插件和依赖。
不同的远程仓库可能含有不同的项目,而在某个激活的profile下,可能定义了一些仓库来搜索需要的发布版或快照版构件。有了Nexus,这些应该交由Nexus完成 -->
<repositories>
<repository>
<id>central</id>
<!-- 虚拟的URL形式,指向镜像的URL,因为所有的镜像都是用的是nexus,这里的central实际上指向的是http://repos.d.xxx.com/nexus/content/groups/public -->
<url>http://central</url>
<!-- 表示可以从这个仓库下载releases版本的构件-->
<releases><enabled>true</enabled></releases>
<!-- 表示可以从这个仓库下载snapshot版本的构件 -->
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<!-- 插件仓库。仓库是两种主要构件的家。第一种构件被用作其它构件的依赖。这是中央仓库中存储大部分构件类型。
另外一种构件类型是插件。Maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其它仓库。
pluginRepositories元素的结构和repositories元素的结构类似。每个pluginRepository元素指定一个Maven可以用来寻找新插件的远程地址。 -->
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<!--this profile will allow snapshots to be searched when activated-->
<id>public-snapshots</id>
<repositories>
<repository>
<id>public-snapshots</id>
<!-- 虚拟的URL形式,指向镜像的URL,这里指向的是http://repos.d.xxx.com/nexus/content/groups/public-snapshots -->
<url>http://public-snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public-snapshots</id>
<url>http://public-snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!-- 激活的Profile。activation元素并不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可以包含profile的id,
任何在activeProfile中定义的profile id,不论环境设置如何,其对应的profile都会被激活。如果没有匹配的profile,则什么都不会发生。
profile也可以通过在命令行,使用-P标记和逗号分隔的列表来显式的激活(如,-P test)。
要了解在某个特定的构建中哪些profile会激活,可以使用maven-help-plugin(mvn help:active-profiles)。 -->
<activeProfiles>
<!-- 没有显示激活public-snapshots -->
<activeProfile>development</activeProfile>
</activeProfiles>
<!-- 自定义本地仓库地址,其默认值为~/.m2/repository -->
<localRepository>/data/maven-repository</localRepository>
<!-- 发布的服务器和密码,暂时未限制权限 -->
<servers>
<server>
<!-- 发布的位置在POM中配置,以ID为关联,有很多公用的信息需要配置在POM文件里,最佳实践是定义一个公司级别的root pom -->
<id>archiva.internal</id>
<username>maven</username>
<password>1q2w3e4r</password>
</server>
<server>
<id>archiva.snapshots</id>
<username>maven</username>
<password>1q2w3e4r</password>
</server>
</servers>
</settings>
分享到:
相关推荐
Maven仓库管理-Nexus Maven仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...
要从 Nexus 下载构件,需要修改 Maven 的配置文件 setting.xml。在 Maven 的配置文件中,可以配置仓库组的 URL,以便从 Nexus 下载构件。 Maven 的安装步骤 Maven 的安装步骤包括: * 下载 Maven 的安装包 * 解...
Nexus是Sonatype公司提供的一款开源的Maven仓库管理器,它能够作为Maven的代理仓库,同时支持SNAPSHOT版本的存储和管理。通过Nexus,我们可以创建多个仓库,分别用于存放公共依赖、内部项目和第三方库,从而实现对...
3. **直接替换**:根据题目描述,你可以直接将下载的名为"阿里云镜像的mavensettings.xml配置文件直接替换使用"的文件替换现有的`$USER_HOME/.m2/settings.xml`。请注意,替换前请备份原有的`settings.xml`,...
通过学习"Maven+nexus学习帮助"中的资料,你将能够熟练掌握Maven的使用,理解POM.xml和Setting.xml的配置,以及如何利用Nexus提升项目管理效率。这些技能对于任何Java开发者来说都是必不可少的。在实践中不断探索和...
Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。 Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。对于Maven来说,仓库只有两种:本地仓库和远程仓库。 本地...
Nexus是一款流行的私有Maven仓库管理器,可以作为企业内部的镜像服务器、代理服务器和仓库。它支持多种仓库类型,如Maven2/3、Ivy、npm、NuGet等。通过Nexus,我们可以轻松地管理内部构件、创建虚拟仓库(聚合多个...
Maven是Java开发中广泛使用的构建工具,用于管理项目的构建、报告和依赖关系。3.8.1是Maven的一个稳定版本,提供了许多增强的功能和修复了已知的问题。配置Maven的私有仓库(也称为内部仓库或私服)是确保项目依赖项...
为使用maven私服,需要在maven的setting.xml文件中添加配置信息。添加以下信息,以确定上传的账号和密码: ``` <id>privateRepo <username>admin <password>admin123 ``` 此外,还需要配置镜像信息,以便...
Maven 使用一个标准的项目对象模型(Project Object Model, POM),通过POM文件来管理项目的依赖关系、构建过程和其他配置信息。在默认情况下,Maven会从中央仓库下载所需的库和依赖,但在中国,由于网络限制,这...
"Maven的安装、配置及使用入门" ...因此,在实际应用中,我们通常会使用 Maven 仓库管理器 Nexus 来管理 Maven 的仓库。Nexus 可以帮助我们更好地管理 Maven 的仓库,使得我们的项目更易于管理和维护。
Java 中 Nexus 私人仓库和 Maven 的搭建可用 在 Java 开发中,Maven 和 Nexus 是两个非常重要的工具,它们可以帮助开发者更方便地管理项目依赖项和构建项目。下面我们来详细介绍这两个工具,并讨论如何搭建 Nexus ...
** Maven的`settings.xml`文件详解 ** 在Java开发领域,Maven是一个广泛使用的构建工具,它通过XML配置管理项目的依赖、构建过程以及部署策略。...理解并正确配置`settings.xml`文件对于优化Maven的使用体验至关重要。
Nexus是一款强大的Maven仓库管理软件,它可以帮助用户管理和组织各种Maven依赖,包括中央仓库的镜像、自定义私有仓库以及第三方库。本教程将指导你如何创建并使用Nexus私有仓库,并通过Eclipse插件进行集成。 **一...
第6章:仓库/6.1 何为Maven仓库 第6章:仓库/6.2 仓库的布局 第6章:仓库/6.3 仓库的分类 第6章:仓库/6.3 仓库的分类/6.3.1 本地仓库 第6章:仓库/6.3 仓库的分类/6.3.1 本地仓库/6.3.1.1 setting.xml文件路径 第6...
以下将详细介绍如何配置Maven的settings文件以使用阿里云的Maven仓库,并设置环境变量以实现快速使用。 首先,我们需要理解`settings.xml`文件的作用。这个文件位于Maven的安装目录下的`conf`文件夹中,是Maven的...
Maven作为Java领域最流行的构建工具之一,它的核心配置文件`settings.xml`是理解Maven工作原理的关键。这篇博客文章“Maven settings.xml配置理解”深入探讨了这个主题,我们将在此详细阐述其主要内容。 `settings....
文档总结了搭建maven私服管理器nexus时遇到的一些问题,建议各位使用nexus2.*版本; 文档描述了pom以及setting的一些配置
4. 公司内部使用的jar包无法从远程Maven仓库下载。 为了解决这些问题,我们可以使用Nexus搭建私服。私服是特殊的远程服务器,代理广域网上的远程仓库,供局域网内Maven用户使用。 Nexus的安装和配置 1. 下载Nexus...
3. **localRepository** 配置:`localRepository`元素指定了本地Maven仓库的位置,这是Maven存储已下载依赖的地方。默认位于用户主目录下的`.m2/repository`,但也可以自定义。 4. **servers** 配置:在`<servers>`...