一.安装下载nexus
1.1下载nexus
访问http://nexus.sonatype.org/downloads/,我下载的是nexus-3.0.2-02-unix.tar.gz版本
1.2安装nexus
tar -zxvf nexus-3.0.2-02-unix.tar.gz
ln -s nexus-3.0.2-02 nexus(做一个软链接)
1.3运行nexus
启动nexus就是启动一个jetty服务器,默认端口是8081,./bin/nexus run
....nexus3.0需要jdk1.8以上才支持,默默的又下载一个nexus-2.14.0-01-bundle.tar包
nexus2.14版本启动的命令是./bin/nexus start,第一次启动可能要几分钟时间
在浏览器中输入http://ip:8081/nexus,就会看到以下的界面
1.4登陆nexus
点击右上角log in ,输入用户名amdin 密码admin123登陆
1.5 更改nexus的默认配置
1.5.1修改密码
点击右上角admin->profile,在出现的页面中点击change password
1.5.2开启远程索引下载
Nexus带有三个重要的代理仓库,有中央Maven仓库,Apache快照仓库,和Codehaus快照仓库。它们中的每一个仓库都包含了数千(或数万)的构件,下载每个仓库的所有内容是不切实际的。处于这个原因,大部分仓库维护了一个编录了整个内容的Lucene索引,以提供快速和有效的搜索。Nexus使用这些远程索引搜索构件,但是默认设置我们关闭了索引下载。要下载远程索引
1.打开Repositories标签,选中远程仓库并打开Configuration,将Download Romote Location 设置为true
2. 在远程仓库上右键选择Update Index,Nexus会自动建立一条任务计划;一般远程仓库都比较大,构建会比较多,索引文件会很大,像http://repo1.maven.org/maven2/就有几百M,因此需要的时间就比较长。
可以进入Scheduled Tasks查看任务的执行情况,当执行完成时,远程仓库的索引就已经建立完毕了.(自动更新太慢了,建议手动更新)
下载完成index之后可以从browse index中看到
2.手动更新
在http://repo.maven.apache.org/maven2/.index/ 中下载
nexus-maven-repository-index.gz
nexus-maven-repository-index.properties
然后再下载一个indexer-cli-5.1.0.jar
indexer的下载地址:http://maven.outofmemory.cn/org.apache.maven.indexer/indexer-cli/5.1.0/
将上面三个文件(.gz & .properties & .jar)放置到同一目录下,运行如下命令
java -jar indexer-cli-5.1.0.jar -u nexus-maven-repository-index.gz -d indexer
将{nexus_home}\sonatype-work\nexus\indexer\central-ctx下的文件全部删掉
执行完之后,把indexer下的所有内容都复制到%nexus-home%\sonatype-work\nexus\indexer\central-ctx下面
重新启动nexus,进入管理界面,选择central->Browse Index,就看到更新的索引了。
二.管理仓库
代理仓库
一个代理仓库是对远程仓库的一个代理。默认情况下,Nexus自带了如下配置的代理仓库:
Apache Snapshots
这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repositoryCodehaus Snapshots这个仓库包含了来自于Codehaus的快照版本。http://snapshots.repository.codehaus.org/
Central Maven Repository
这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/
宿主仓库
一个宿主仓库是由Nexus托管的仓库。Maven自带了如下配置的宿主仓库。
3rd Party
这个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这种依赖的样例有:你组织使用的,商业的,私有的类库如Oracle JDBC驱动。
Releases
这个宿主仓库是你组织公布内部发布版本的地方。
Snapshots
这个宿主仓库是你组织发布内部快照版本的地方。
虚拟仓库
一个虚拟仓库作为Maven 1的适配器存在。Nexus自带了一个central-m1虚拟仓库。
Type:
hosted,本地代理仓库,通常我们会部署自己的构件到这一类型的仓库。
proxy,代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。
三.部署构建到nexus
3.1部署发布版本
需要配置distributionManagement,项目有了这个配置就可以执行mvc deploy命令了
<project> ... <distributionManagement> ... <repository> <id>releases</id> <name>Internal Releases</name> <url>http://localhost:8081/nexus/content/repositories/releases</url> </repository> ... </distributionManagement> ... </project>
Nexus可以支持多个宿主仓库;你不需要坚持在默认的 releases 和 snapshots 仓库上。你可以为不同的部门创建不同的宿主仓库,然后将多个仓库组合成一个单独的Nexus组。
3.2部署快照版本
如果你项目的版本是快照版本(如1.0-SNAPSHOT)Maven就会将其部署至 snapshotRepository :
<project> ... <distributionManagement> ... <snapshotRepository> <id>Snapshots</id> <name>Internal Snapshots</name> <url>http://localhost:8081/nexus/content/repositories/snapshots</url> </snapshotRepository> ... </distributionManagement> ... </project
3.3部署第三方构件
DgroudId 和artifactId分别代表第三方构件的id
mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 \ > -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar \ > -Durl=http://localhost:8081/nexus/content/repositories/thirdparty \ > -DrepositoryId=thirdparty