码迷,mamicode.com
首页 > 其他好文 > 详细

Maven学习(三):maven私服nexus

时间:2015-01-02 12:18:57      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:maven   nexus   私服   索引   sonatype   

一、nexus 的成功安装

(一)下载:

1、下载地址:http://www.sonatype.org/nexus/archived/

2、解压到固定文件夹:D:\MyJAR\Use_JAR\nexus\

3、目录介绍:(2.3.1版本)

1)nexus-2.3.1-bundle:该目录包含了Nexus 运行所需要的文件,如启动脚本、依赖jar包等。

2)sonatype-work:该目录包含Nexus生成的配置、日志文件、仓库文件等。


4、命令:

如果要启动 nexus 需要在 nexus-2.3.1-bundle\nexus-2.3.1-01\bin\jsw 下面选择对应的系统版本,我的环境是:win7 64位。

技术分享


(二)成功启动

1、直接启动:直接在安装目录中双击命令即可:如在 windows-x86-64\下的命令有:(盗图)

技术分享


Installnexus.bat 将Nexus安装成windows服务

Uninstallnexus.bat 卸载Nexus Windows服务

Startnexus.bat 启动Nexus Windows 服务

Stopnexus.bat 停止Nexus windos 服务

Pausenexus.bat 暂停Nexus windows 服务

Resumenexus.bat 恢复暂停的 Nexus Windos服务


2、配置启动:

1)配置path路径,方便在doc环境,使用nexus的命令。验证配置,只需要在doc窗口下输入nexus即可。

技术分享


2)发布到window服务:nexus install,即可以发布 nexus 到window。(nexus内置了Jetty)

3)以后就可以设置window服务,让nexus是否启动了。或者命令行 nexus start 即可。

4)如果要用到系统的java环境,需要修改 nexus-2.3.1-bundle\nexus-2.3.1-01\bin\jsw\conf\下的 wrapper.conf 文件:设置本地java的路径


技术分享

3、验证发布成功:输入 http://localhost:8081/nexus 

4、登录:admin\admn123 即可登录。


二、nexus 内置仓库


技术分享


(一)virtual:虚拟仓库(maven1的),可以忽略。

(二)hosted:项目开发过程提交的仓库,称为宿主仓库(内部服务)。

1、3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件。简单理解:可以上传存储我们开发过程依赖的第三方的 jar 包。

2、Release:这是一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件。简单理解:上传存放开发的项目的 Release 版本。(Release 和 Snapshots的上传区别在于 pom文件中的版本元素的内容

3、Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件。简单理解:上传存放开发的项目的 Snapshots版本。


(三)proxy:代理仓库。本地开发需要依赖某个jar包,会先去宿主仓库拿,没有则会去代理工厂获取(本地-->宿主仓库-->代理仓库)

1、Central:代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。所以需要在Central 的 Comfiguration 中配置中央仓库的地址(需要更新索引)。http://repo1.maven.org/maven2/

2、Apache Snapshots: 这是一个策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构件。即专门下载Apache 的快照版本的开发包

3、Codehaus Snapshots: 这是一个策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的快照版本构件。


(四)group:仓库组,多个仓库加入一个仓库组,这样开发过程中只需要指定某个仓库组即可。

1、Public Repositories:该仓库组将上述所有策略为Release的仓库聚合并通过一致的地址提供服务。


三、nexus 的日常使用


(一)3rd party 的使用:

1、主要在于存储第三方的 jar 包,使用的过程即从本地上传jar包,并构建pom坐标。

2、实例,如开发依赖的 log4j jar包:

1)上传,并构建 log4j 的 pom坐标:

技术分享


依次使用【selectArtifact for upload【Add Artifact】【uploadArtifact】三个按钮。


2)使用:只需要在项目的pom文件的依赖中,放入刚刚上传的时候填写的构建坐标即可:

技术分享



(二)更新中央仓库索引——必须操作

1、手动下载

 首先将索引下载到本地,下载地址:nexus-maven-repository-index.zip

 解压索引压缩包,将里面内容全部拷贝


关闭当前Nexus私服,打开Nexus目录%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx,首先删除当前目录里所有内容,然后粘贴所下载的索引,最后启动Nexus私服,索引生效。


2、自动下载,步骤如下


1)打开Repositories标签,选中中央仓库并打开Configuration,将Download Romote Location 设置为true;


技术分享



2)在远程仓库上右键选择Update Index,Nexus会自动建立一条任务计划;一般远程仓库都比较大,构建会比较多,索引文件会很大,像http://repo1.maven.org/maven2/ 就有几百M,因此需要的时间就比较长。


技术分享



3)可以进入Scheduled Tasks查看任务的执行情况,当执行完成时,远程仓库的索引就已经建立完毕了。这个自动下载过程是一个漫长的等待,等任务消失后说明已经下载成功。

技术分享



3、成功更新索引。

点击central 仓库,接着点击Browse Index 如果已经有了,说明索引更新成功。

技术分享




(三)仓库组的使用

1、添加仓库组:默认仓库组中已经有常用的4个仓库。

技术分享


2、配置仓库组。http://localhost:8081/nexus/content/groups/public/

1)在开发的pom文件汇中配置仓库组地址,使用 <repositories> 标签即可。

<span style="font-size:18px;"><span style="font-family:Arial;font-size:18px;">	<repositories>
		<repository>
			<id>nexus</id>
			<name>Nexus Repository </name>
			<url>http://localhost:8081/nexus/content/groups/public/</url>
		</repository>
	</repositories></span></span>


2)这样配置好后,如果pom中依赖某个 jar 包,依赖的顺序为:本地-->仓库组-->宿主-->代理 。

3)使用仓库组,同样需要需要更新索引,原因在于仓库组包含中央仓库(central),当中央仓库更新索引后,仓库组也需要更新。


3、合理的仓库组配置:配置在 maven 的settings.xml 文件中。


(四)settings.xml 中设置仓库的使用

1、settings.xml 中可以配置多个仓库,把profiles 代表了所有的仓库,profile代表其中一个(不仅仅是仓库,可以代表任何配置),然后使用 activeProfiles 标签激活仓库。

2、配置:releases 和 snapshots 代表允许下载 的2个版本。

<span style="font-size:18px;"><span style="font-family:Arial;font-size:18px;">        <profile>
            <id>JavaMaven</id>
            <repositories>
           		<repository>
					<id>nexus</id>
					<name>Nexus Repository </name>
					<url>http://localhost:8081/nexus/content/groups/public/</url>
					<releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                   </snapshots>
				</repository>
            </repositories>            
        </profile>	
  </profiles></span></span>

3、激活以后才能生效:

<span style="font-size:18px;"><span style="font-family:Arial;font-size:18px;">  <activeProfiles>
		<activeProfile>JavaMaven</activeProfile>
  </activeProfiles></span></span>


(五)镜像的使用

1、在maven的 settings.xml 配置nexus的仓库地址后,如果nexus 服务关闭,还是会自动去中央仓库下载,因为在maven的 apache-maven-3.2.3\lib\maven-model-builder-3.2.3.jar\org\apache\maven\model\pom-4.0.0.xml 配置了中央仓库的配置。

<span style="font-size:18px;"><span style="font-family:Arial;font-size:18px;">  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories></span></span>

2、限制访问外部仓库的设置,只允许私服使用外部仓库的访问。

<span style="font-size:18px;"><span style="font-family:Arial;font-size:18px;">	<!-- 配置镜像,只要mirrorOf 中的仓库要访问(一般配置*),都会去找镜像,如果镜像无法访问,就不会再私自去找中央仓库了-->
	<mirrors>  
		<mirror>     
		 <id>nexus</id>      
		 <url>http://localhost:8081/nexus/content/groups/public/</url>     
		 <mirrorOf>*</mirrorOf>     
		</mirror>  
    </mirrors></span></span>

这边 mirrorOf  一般配置成 * ,代表所有的仓库访问。


(六)发布项目到nexus

1、在私服创建项目的发布仓库(也可以使用原有的宿主仓库):

1)新建宿主仓库:

技术分享


2)创建两个版本的仓库(Releases 和 Snapshot),分别选择 repository pollicy 为两个版本,deployment pollicy 为 Allow Redeploy(允许发布)


2、配置一系列信息

1)配置权限:配置完成会增加 CRUD的权限。

技术分享


2)角色配置:增加新建的两个仓库的权限配置。

技术分享


3)用户配置:新建用户,并配置前面新建的角色给用户。

技术分享



3、项目配置

1)在pom文件配置项目上传的仓库信息:

	<distributionManagement>
		<repository>
			<id>JavaMaven</id>
			<name>JavaMaven Release Repository</name>
			<url>http://localhost:8081/nexus/content/repositories/JavaMaven-Releases/</url>
		</repository>
		<snapshotRepository>
			<id>JavaMaven</id>
			<name>JavaMaven Snapshot Repository</name>
			<url>http://localhost:8081/nexus/content/repositories/JavaMaven-Snapshot/</url>
		</snapshotRepository>
	</distributionManagement>


2)配置用户信息:这边的 Id 必须与 distributionManagement 配置的id 保持一致

  <servers>
	<server>
      <id>JavaMaven</id>
      <username>javamaven</username>
      <password>javamaven</password>
    </server>
  </servers>



Maven学习(三):maven私服nexus

标签:maven   nexus   私服   索引   sonatype   

原文地址:http://blog.csdn.net/u012228718/article/details/42192091

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!