`
liyixing1
  • 浏览: 939475 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

Nexus 仓库管理器

阅读更多

简介
仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开 Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的 地方。

下载与安装
http://nexus.sonatype.org

zip安装
unzip nexus-1.0.0-beta-3-bundle.zip
tgz格式安装
tar xvzf nexus-1.0.0-beta-3-bundle.tgz

需要注意的是,Nexus提供两种版本,OOS和Pro,其中OOS为独立版本,下载后里面自带了一个web服务器,而Pro是纯粹的项目版本war。学习使用的话,更建议OOS版本。



Nexus启动的时候实际上会启动一个WEB服务器。默认地址是 localhost:8081。Nexus在一个名为Jetty的servlet容器中运行。

ln -s nexus-2.11.2-06 nexus

cd nexus/bin/

./nexus console




如果运行成功,可以访问
http://localhost:8081/nexus
默认的NEXUS用户名和密码是"admin" 和 "admin123"

初始化配置
修改管理员密码和email,这些不用说了吧。

smtp配置,这个也不用说了

远程索引配置
Nexus带有三个重要的代理仓库,有中央Maven仓库,Apache快照仓库,和
Codehaus快照仓库。它们中的每一个仓库都包含了数千(或数万)的构件,下载
每个仓库的所有内容是不切实际的。处于这个原因,大部分仓库维护了一个编录
了整个内容的Lucene索引,以提供快速和有效的搜索。


Nexus使用这些远程索引搜索构件,但是默认设置我们关闭了索引下载。因为默认要是打开,那么如果Nexus更新后,那么成千上万个Nexus会自动去下载索引文件,平均一个索引文件有27MB。

设置下载索引,
进入http://localhost:8081/nexus(需要登录,新版本的操作可能有些差异)
1.点击Administration菜单下面的Repositories,新版本的菜单在Views/Repositories
更改三个代理仓库的Download Remote Indexes为true。
2. 在每个代理仓库上右击然后选择Re-index。这会触发Nexus下载远程的索引文
件。
Nexus下载整个索引可能需要好几分钟,但是一旦你下载好之后,你就能够搜索
Maven仓库的所有内容了。

RSS订阅功能
我想MAVEN将Nexus作为仓库默认管理器,和RSS订阅功能有很大关系吧。maven号称不只是构建产品,还是项目管理产品,自然从管理的角度需要提供功能支持,而比如当我们公司内部开发的UTIL包,当该包更新后,肯定会希望通知到全公司的人员,那么RSS功能就能提供支持了。当然邮件系统也可以。



配置Maven使用Nexus
编辑~/.m2/settings.xml 文件中的mirror配置。

<?xml version="1.0"?>
<settings>
...
<mirrors>
<mirror>
<id>Nexus</id>
<name>Nexus Public Mirror</name>
<url>http://localhost:8081/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
...
</settings>

如上指定了中央库<mirrorOf>central</mirrorOf>


上面的配置只是设置的中央库,但是快照仓库public-snapshots 组(该组包括了Apache和Codehaus的快照版)没有设置。

<settings>
<mirrors>
<mirror>

<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
</mirror>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>development</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>public-snapshots</id>
<repositories>
<repository>
<id>public-snapshots</id>
<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>
<activeProfiles>
......




为缺少的依赖添加仓库
对于非组件的依赖,比如在pom.xml 中自定义一组repositories 和snapshotRepositories 的项目。如果你正在构建开源项目,或者往你的配置中添加了自定义的第三方Maven仓库。

方法一:
假设依赖组件X,不在中央仓库,但它的POM中配置了仓库,那么可以修改settings.xml中的 mirrorOf 元素的值改为"central",而非让Nexus public组 mirrorOf 所有的仓库。那么当settings.xml中的仓库无法获取,那么就会从pom设置的仓库中获取。


方法二:
将这些外部组件的仓库添加到Nexus,并把这些仓库指定到组中。


发布版本到Nexus
既然搭建了自己的仓库,那么自己些的组建应该要发布到该仓库,以提供组织内部使用。

要部署构件至Nexus,在 distributionManagement 中提供仓库URL,然后运行mvn
deploy。Maven会通过一个简单的HTTP PUT将项目POM和构件推入至你的Nexus安装。最初版本的Nexus没有为宿主仓库提供任何的安全措施。如果你为宿主仓库开启了部署功能,任何人可以连接并部署构件至这个仓库。如果你的Nexus安装能够从公共Internet访问,你绝对会想要将这些仓库的部署功能关闭,或者将你的Nexus安装放到一个如Apache HTTPD的web服务器背后,这样就可以通过Apache的httd提供的验证功能来验证了。

<project>
...
<distributionManagement>
...
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
...
</distributionManagement>
...
</project>


快照版
<project>
...
<distributionManagement>
...
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
...
</distributionManagement>
...
</project>

需要注意的是,只有当版本号具有快照签名才会发布到快照版本。
(如1.0-SNAPSHOT)

第三方组件仓库
比如想mysql的jdbc驱动,如果期望把它部署到nexus中,nexus提供了一个third-party仓库
如果你将下列的依赖添加到你的项目:
<project>
...
<dependencies>
...
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
...
</dependencies>
...
</project>

这个时候无法找到这个jar
这个时候需要通过命令把该构建包发送到nexus,并存入第三方组件仓库
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
分享到:
评论

相关推荐

    ansible-nexus3-oss, Ansible角色为 redhat/centos提供 Nexus 仓库管理器 3.x.zip

    ansible-nexus3-oss, Ansible角色为 redhat/centos提供 Nexus 仓库管理器 3.x Ansible角色:Nexus 3-操作系统这里角色在 centos/rhel上安装和配置 Nexus 存储库管理器 操作系统 版本 3.x 。除了 blobstores -related...

    Nexus 是Maven仓库管理器

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省...

    nexus-maven仓库管理软件-使用手册(pdf)

    nexus-maven仓库管理软件-使用手册(pdf格式)

    nexus设置私有仓库和仓库管理

    nexus设置私有仓库和仓库管理

    repository management with nexus

    nexus官网下载的关于对nexus仓库管理器的介绍和使用。

    Nexus入门指南(图文).

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省...

    nexus3.X win64

    可用的nexus仓库管理免费下载

    Maven仓库管理-Nexus

    Maven私服搭建必备,完整的Maven私服和本地仓库搭建步骤

    官网下载的OSS版:nexus-2.15.1-02-bundle.zip

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽...

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

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。 Nexus是一套“开箱即用”的系统不...

    nexus-2.10.0-02

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省...

    Nexus 仓库管理.pdf

    It doesn't feel like it's been long since we officially launched Vortex - our new mod manager - back in July but that was 4 months ago! Over that time, the Vortex team have been hard at work going ...

    nexus-2.14.8-01.zip

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...

    nexus-3.23.0-03-win64.rar-Nexus Repository Oss

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...

    nexus 2.11

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省...

    Nexus Repository Manager 3.28.1-01

    Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。 如果使用了公共的Maven仓库服务器,可以从Maven中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。 正常...

    maven nexus使用说明

    自己写的一份关于maven + nexus仓库管理的使用手记 包括了nexus的基本使用及nexus权限管理等

    Sonatype Nexus Maven 仓库管理工具

    【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 ) https://hanshuliang.blog.csdn.net/article/details/127385094 博客资源

    Nexus私服系列合集

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...

    nexus-3.31.1-01-win64.zip

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...

Global site tag (gtag.js) - Google Analytics