Nexus Repository OSS 3.x简介

功能简介

Nexus Repository OSS是一款通用的软件包仓库管理(Universal Repository Manager)服务,撰文时的最新版本是3.5.1-02。 要查看真正的最新版本,可以访问以下两个地址。

从3.x开始,它默认支持许多主流的软件包格式。

每一类服务,都可以创建三种类型的Repository。

常用方法是,用一个proxy类型去代理某个官方Repository或其国内镜像,比如Maven Central、PyPI等, 再以一个hosted作为本地的私有包发布库,最后用一个group把二者组合起来。 如果在hosted和proxy有同名的包(这是需要避免的),在通过group下载时,默认查找优先级如下。

  1. 最新版本
  2. hosted
  3. proxy

OSS与Pro

和许多商业开源软件类似,OSS版本是开源免费的,而Pro则是其对应的商业付费版本。 相对同类软件Artifactory,及其早期的2.x版本,3.x版本的Nexus Repository OSS堪称良心软件的楷模!

The world’s only repository manager with FREE support for popular formats.

Feature 2 OSS 2 Pro 3 OSS 3 Pro
Bower
Docker
Git Large File Storage (LFS)
Maven
npm limited limited
NuGet
PyPI
RubyGems
YUM
Upgrading 2x to 3x
Unlimited Deployment
Component Search limited
RHC
Improved Backup & Restore
Provisioning API
Open Source Integration
Auth Token Support
Custom Access Controls
Repo Targets / Content Selectors
Enterprise LDAP
Crowd
Staging & Build Promotion
Community Support
Enterprise Support

Crowd是一个商业版本的账户同步服务,通常使用LDAP就够了。 Staging & Build Promotion在3.x版本还没有完全实现,即使是Pro版本也暂时用不上。 除了了以上两点,还有Enterprise Support(商业技术支持),3.x版本的OSS与Pro其它Feature基本相同。 此外,在官方文档的Feature Matrix中,还有一些特性未在上表列出。 这些未列出的特性,都是在当前的3.5.1-02版本上还未实现的。

至于Artifactory的免费版,则仅仅支持Java生态中的Maven。

安装使用

下载页面下载压缩包,解压后即可直接使用。

推荐使用Docker的方式。 以下两个操作,即可简单启动一个试用服务。

docker pull sonatype/nexus3
docker run -d -p 8081:8081 --name nexus sonatype/nexus3

正式部署时,需要挂载数据卷,做好数据持久化。

Pro版本与OSS版本的安装包、以及安装方法是完全一样的,只是需要用购买的License去做激活。

实现简介

Nexus Repository是以Java和JavaScript为主,实现的一个包含前端与后台的Web服务。 后台方面,它采用Jetty作为应用服务器、Karaf作为OSGi容器、OrientDB作为数据库。 前端方面,它使用Swagger UI作为框架,是一个单页面Web App。

另外,它也通过Resteasy支持REST API,可以通过网络进行访问控制。 并且,自行实现了一个插件系统,用插件的方式支持了更多复杂的功能。 比如,Maven、PyPI、Docker这些支持,都是由插件实现的。 如果希望支持其它方式的代理、缓存、发布,比如APT,也可以通过插件定制。

总之,这是一个比较复杂而又先进的开源Java项目,可以从中学到很多最新的Java技术。

参考


相关笔记