Nexus Repository OSS 3.x简介
2017-08-29 15:17:53 +08 字数:1809 标签: Nexus PyPI功能简介 ¶
Nexus Repository OSS是一款通用的软件包仓库管理(Universal Repository Manager)服务,撰文时的最新版本是3.5.1-02
。
要查看真正的最新版本,可以访问以下两个地址。
- GitHub上最新版本地址:https://github.com/sonatype/nexus-public/releases
- Docker Hub上最新版本:https://hub.docker.com/r/sonatype/nexus3/tags/
从3.x开始,它默认支持许多主流的软件包格式。
- Bower
- Docker
- Git LFS
- Maven
- npm
- NuGet
- PyPI
- Ruby
- Gems
- Yum
- Proxy
每一类服务,都可以创建三种类型的Repository。
- proxy,对指定URL,提供代理服务。
- hosted,提供私有包的发布服务。
- group,组合同种格式、不同类型的多个服务到一起,通过同一个URL对外提供。
常用方法是,用一个proxy类型去代理某个官方Repository或其国内镜像,比如Maven Central、PyPI等, 再以一个hosted作为本地的私有包发布库,最后用一个group把二者组合起来。 如果在hosted和proxy有同名的包(这是需要避免的),在通过group下载时,默认查找优先级如下。
- 最新版本
- hosted
- 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技术。
参考 ¶
- 产品主页:https://www.sonatype.com/nexus-repository-oss
- 下载页面:https://www.sonatype.com/download-oss-sonatype
- 开源地址:https://github.com/sonatype/nexus-public
- 官方文档:https://help.sonatype.com/display/NXRM3/
- Docker Hub:https://hub.docker.com/r/sonatype/nexus3/
- 插件列表:http://exchange.sonatype.com/list
- White Papers:https://www.sonatype.com/learn-white-papers