一、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>
<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>
<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>
原文地址:http://blog.csdn.net/u012228718/article/details/42192091