`
cantellow
  • 浏览: 848382 次
  • 性别: Icon_minigender_1
  • 来自: 草帽海贼团
社区版块
存档分类
最新评论

使用Nexus管理maven仓库,setting文件理解

 
阅读更多

来到新公司对很多陌生的技术一头雾水,以前在工作中没有真正使用过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>
2
2
分享到:
评论
3 楼 rlplyyrb 2011-09-22  
在项目的配置文件pom.xml里配置如下代码:
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

那么在你使用mvn deploy发布项目时,如果是release版本的话,会将项目自动部署到nexus的宿主仓库releases里,如果是开发版本的话,会将项目自动部署到nexus的宿主仓库snapshots里。这里区分是release版本还是snapshots版本的关键在于:你的POM文件的版本号有没有-SNAPSHOT。比如:<version> 1.0 </version>这个为release版本,<version>1.0-SNAPSHOT</version>这个为snapshots版本。
2 楼 cantellow 2011-07-19  
snake1987 写道
这应该是maven的setting文件的东西吧,很多东西貌似还需要nexus配置,像自动下载源代码,deploy自动上传源代码,snapshot的管理等等,坐等你研究出来,呵呵

估计最近是没有时间再对maven深一步了,因为还有很多其他的东西等着我去了解,深入的话,应该是第二轮学习吧。
1 楼 snake1987 2011-07-19  
这应该是maven的setting文件的东西吧,很多东西貌似还需要nexus配置,像自动下载源代码,deploy自动上传源代码,snapshot的管理等等,坐等你研究出来,呵呵

相关推荐

    Maven仓库管理-Nexus

    Maven仓库管理-Nexus Maven仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...

    Nexus搭建Maven私服 +maven安装步骤

    要从 Nexus 下载构件,需要修改 Maven 的配置文件 setting.xml。在 Maven 的配置文件中,可以配置仓库组的 URL,以便从 Nexus 下载构件。 Maven 的安装步骤 Maven 的安装步骤包括: * 下载 Maven 的安装包 * 解...

    maven私服(nexus)配置(setting,pom.xml)

    Nexus是Sonatype公司提供的一款开源的Maven仓库管理器,它能够作为Maven的代理仓库,同时支持SNAPSHOT版本的存储和管理。通过Nexus,我们可以创建多个仓库,分别用于存放公共依赖、内部项目和第三方库,从而实现对...

    阿里云镜像的mavensettings.xml配置文件直接替换使用

    3. **直接替换**:根据题目描述,你可以直接将下载的名为"阿里云镜像的mavensettings.xml配置文件直接替换使用"的文件替换现有的`$USER_HOME/.m2/settings.xml`。请注意,替换前请备份原有的`settings.xml`,...

    maven+nexus学习帮助

    通过学习"Maven+nexus学习帮助"中的资料,你将能够熟练掌握Maven的使用,理解POM.xml和Setting.xml的配置,以及如何利用Nexus提升项目管理效率。这些技能对于任何Java开发者来说都是必不可少的。在实践中不断探索和...

    官网下载的professional版:nexus-professional-2.15.1-02-bundle

    Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。 Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。对于Maven来说,仓库只有两种:本地仓库和远程仓库。 本地...

    maven 配置多仓库

    Nexus是一款流行的私有Maven仓库管理器,可以作为企业内部的镜像服务器、代理服务器和仓库。它支持多种仓库类型,如Maven2/3、Ivy、npm、NuGet等。通过Nexus,我们可以轻松地管理内部构件、创建虚拟仓库(聚合多个...

    maven 3.8.1版本私服配置版本

    Maven是Java开发中广泛使用的构建工具,用于管理项目的构建、报告和依赖关系。3.8.1是Maven的一个稳定版本,提供了许多增强的功能和修复了已知的问题。配置Maven的私有仓库(也称为内部仓库或私服)是确保项目依赖项...

    手动搭建maven私服-安装配置nexus 3.4教程

    为使用maven私服,需要在maven的setting.xml文件中添加配置信息。添加以下信息,以确定上传的账号和密码: ``` &lt;id&gt;privateRepo &lt;username&gt;admin &lt;password&gt;admin123 ``` 此外,还需要配置镜像信息,以便...

    apache-maven-3.8.6,配置 了maven 的 setting.xml 文件,改为使用国内的阿里镜像

    Maven 使用一个标准的项目对象模型(Project Object Model, POM),通过POM文件来管理项目的依赖关系、构建过程和其他配置信息。在默认情况下,Maven会从中央仓库下载所需的库和依赖,但在中国,由于网络限制,这...

    Maven的安装、配置及使用入门

    "Maven的安装、配置及使用入门" ...因此,在实际应用中,我们通常会使用 Maven 仓库管理器 Nexus 来管理 Maven 的仓库。Nexus 可以帮助我们更好地管理 Maven 的仓库,使得我们的项目更易于管理和维护。

    构建java的nexus私人仓库和maven的搭建可用.pdf

    Java 中 Nexus 私人仓库和 Maven 的搭建可用 在 Java 开发中,Maven 和 Nexus 是两个非常重要的工具,它们可以帮助开发者更方便地管理项目依赖项和构建项目。下面我们来详细介绍这两个工具,并讨论如何搭建 Nexus ...

    maven的settings.xml文件

    ** Maven的`settings.xml`文件详解 ** 在Java开发领域,Maven是一个广泛使用的构建工具,它通过XML配置管理项目的依赖、构建过程以及部署策略。...理解并正确配置`settings.xml`文件对于优化Maven的使用体验至关重要。

    nexus私服的操作

    Nexus是一款强大的Maven仓库管理软件,它可以帮助用户管理和组织各种Maven依赖,包括中央仓库的镜像、自定义私有仓库以及第三方库。本教程将指导你如何创建并使用Nexus私有仓库,并通过Eclipse插件进行集成。 **一...

    maven window下安装包

    第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...

    配置好setting文件并且使用了阿里云的maven文件夹,直接放在D盘配置一下环境变量即可直接使用

    以下将详细介绍如何配置Maven的settings文件以使用阿里云的Maven仓库,并设置环境变量以实现快速使用。 首先,我们需要理解`settings.xml`文件的作用。这个文件位于Maven的安装目录下的`conf`文件夹中,是Maven的...

    Maven settings.xml配置理解

    Maven作为Java领域最流行的构建工具之一,它的核心配置文件`settings.xml`是理解Maven工作原理的关键。这篇博客文章“Maven settings.xml配置理解”深入探讨了这个主题,我们将在此详细阐述其主要内容。 `settings....

    关于MAVEN仓库服务器的安装与一些maven相关配置

    文档总结了搭建maven私服管理器nexus时遇到的一些问题,建议各位使用nexus2.*版本; 文档描述了pom以及setting的一些配置

    如何使用nexus在局域网内搭建maven私服及idea的使用

    4. 公司内部使用的jar包无法从远程Maven仓库下载。 为了解决这些问题,我们可以使用Nexus搭建私服。私服是特殊的远程服务器,代理广域网上的远程仓库,供局域网内Maven用户使用。 Nexus的安装和配置 1. 下载Nexus...

    Maven的阿里云镜像配置文件Setting.xml

    3. **localRepository** 配置:`localRepository`元素指定了本地Maven仓库的位置,这是Maven存储已下载依赖的地方。默认位于用户主目录下的`.m2/repository`,但也可以自定义。 4. **servers** 配置:在`&lt;servers&gt;`...

Global site tag (gtag.js) - Google Analytics