`
liyixing1
  • 浏览: 952875 次
  • 性别: 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...

    nexus3.X win64

    **Nexus仓库管理器详解** 1. **功能特性** - **依赖管理**:Nexus作为中央仓库,可以缓存远程Maven或Gradle仓库的依赖,减少网络延迟,提高构建速度。 - **代理仓库**:它能够代理JCenter、Maven Central等公共...

    Maven仓库管理-Nexus

    Nexus 仓库管理是 Maven 仓库管理的重要组成部分,它提供了一个完整的仓库管理解决方案,允许用户创建公司层面的仓库管理器,解决了多个项目之间的依赖问题。 Maven 仓库管理的优点包括: * 实现了依赖管理的方便...

    nexus-webapp-1.9.2.4安装文件

    标题中的"nexus-webapp-1.9.2.4安装文件"指的是Nexus仓库管理器的一个特定版本,即1.9.2.4。这个版本的Nexus是作为Web应用程序来部署的,因此以".war"(Web ARchive)文件格式提供。.war文件是Java Web应用的标准...

    nexus-3.3.0-01

    标题 "nexus-3.3.0-01" 指的是 Nexus 仓库管理器的一个具体版本,即 3.3.0-01。Nexus 是 Sonatype 公司开发的一款开源软件,用于管理和分发 Maven、npm、NuGet、Python 等不同包管理系统的组件。它在软件开发流程中...

    nexus conan 插件

    标题中的“nexus conan 插件”指的是Nexus仓库管理器中用于支持Conan包管理的插件。这个插件允许用户在Nexus中管理和分发Conan包,为C++项目提供了企业级的依赖管理解决方案。 通过安装Nexus Conan插件,你可以实现...

    repository management with nexus

    Nexus仓库管理器是一款专业的软件仓库管理工具,广泛用于管理各种软件组件,例如源代码、二进制包以及配置文件等。它支持多种协议,包括Maven、npm、NuGet、P2、RubyGems、YUM等,并提供强大的权限控制与分发机制。...

    nexus-webapp-1.5.0-bundle

    标题 "nexus-webapp-1.5.0-bundle" 提供了我们正在讨论的是 Nexus 仓库管理器的一个特定版本,即 1.5.0 版本的 Web 应用程序捆绑包。Nexus 是一个由 Sonatype 公司开发的开源软件,主要用于管理和分发 Maven 构件,...

    nexus-3.32.0.zip

    在标签中,“nexus”是关键词,它直接关联到这个话题的核心——Nexus仓库管理器。标签通常用于分类和搜索,帮助用户快速找到相关的资源和讨论。 关于"nexus-3.32.0"的压缩包,我们可以预想其中可能包含以下组件: ...

    Nexus 是Maven仓库管理器

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

    maven私服tar包(nexus_linux).zip

    标题提到的"maven私服tar包(nexus_linux).zip"是针对Linux环境的Nexus仓库管理器的压缩包,其中包含了"Nexus-3.15.2-01-unix.tar.gz"文件。这个版本的Nexus是专为Linux系统设计的,提供了一种方便的方式来在Linux...

    nexus帮助文档pdf版本

    ### 关于Nexus仓库管理器的关键知识点 #### 一、Nexus仓库管理器概述 Nexus Repository Manager(简称Nexus)是一款由Sonatype公司开发的仓库管理工具,它主要用于管理和分发各种类型的软件包,包括但不限于Java、...

    nexus-3.26.1-02-win64.zip.rar

    首先,“nexus”是Nexus仓库管理器的名称,表明这是与该软件相关的文件。接着,“3.26.1-02”是版本号,表示这是Nexus的一个特定发行版,通常每个版本都会包含性能优化和新特性。最后,“win64”意味着这个版本是为...

    【Free】Linux版nexus3.40.1。

    标题中的"Linux版nexus3.40.1"指的是Nexus仓库管理器的特定版本,版本号为3.40.1,专为Linux操作系统设计。这个版本可能包含了对Linux平台的优化和增强,以确保在Linux环境下的稳定运行和高效性能。 描述中的"0积分...

    Sonatype Nexus Maven 仓库管理工具

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

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

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

    NEXUS-3.26-win64.rar

    Nexus 3.26是Nexus仓库管理器的一个版本,专为Windows系统设计。它不仅支持Maven仓库,还支持npm、Gradle、RubyGems等多种语言的依赖管理。通过Nexus,开发者可以创建并维护自己的镜像仓库,从而实现对依赖的本地化...

    nexus-3.18.1-01-win64.zip

    总结,"nexus-3.18.1-01-win64.zip"是一个适用于Windows 64位系统的Nexus仓库管理器的最新版本,包含了丰富的功能和优化,旨在提升开发团队的工作效率和项目的稳定性。通过合理的配置和使用,Nexus能成为企业软件...

    nexus-3.38.0-01-mac.tgz

    总而言之,"nexus-3.38.0-01-mac.tgz" 是一个适用于macOS平台的Nexus仓库管理器的版本,它可以帮助Java开发者更有效地管理和分发Maven依赖。通过解压并按照安装指南进行操作,用户可以在本地环境中设置和运行Nexus...

Global site tag (gtag.js) - Google Analytics