基于Nexus搭建私有Maven仓库指南

基于Nexus搭建私有Maven仓库指南。云效提供了企业级Maven私有仓库服务,用户可以使用它来托管自己的私有二方库。用户也可以自己搭建Maven***。以下是使用Nexus搭建云效Maven***的指南,可以在云效中使用Nexus搭建自己的Maven仓库。

本文中使用的是Nexus Repository Manager OSS nexus 3.5.0-02。下载链接为 https://www.sonatype.com/download-oss-sonatype。安装和使用请参考其官方文档

假设您的Nexus服务器的域名(或者您倾向于直接使用IP也可以)是www.your-repo.com

保证***公网可见

首先要保证您的***在公网是可见的,这样云效才能从您的***下载二方包。验证方式:在一台您的企业内网之外的机器上执行telnet www.your-repo.com 80,如果没有返回错误,则表示该***是公网可见的。

保证***中的库不能被匿名下载

Nexus默认的配置,允许匿名下载maven库中的包。需要将其禁止掉。具体做法如下。

开启下载包的HTTP认证

在nexus-default.properties添加一行nexus.browserdetector.disable=true。重启nexus。

关闭匿名用户

保证下图中Allow anonymous users to access the server是没有选中的。
关闭匿名

创建用户上传和下载二方包的maven库

在Nexus上创建了一个名为my-lib-repo的maven库。
库

为maven库创建用户

Nexus会为您创建的maven库预置一些权限点,接下来需要创建一个角色,来包含只读的权限点。
role
然后再创建一个用户来使用该角色。用户名和密码都是my-lib-repo-reader。
user

在settings.xml中添加认证信息

在Maven的的默认settings.xml中找到servers的部分,添加一个server配置如下。

<server> <id>my-lib-repo</id> <username>my-lib-repo-reader</username> <password>my-lib-repo-reader</password> </server>

为了保证云效使用该settings.xml,需要把该settings.xml文件放置到您的代码库的根目录。

配置pom.xml的下载包顺序

为了让您的Maven构建先尝试从maven.aliyun.com下载包,如果下载不到再从http://www.your-repo.com/repository/my-lib-repo下载包,需要按照如下的方式配置pom.xml:

<project> ... <repositories> <repository> <id>aliyun-repo</id> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </repository> <repository> <id>my-lib-repo</id> <url>http://www.your-repo.com/repository/my-lib-repo/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </pluginRepository> <pluginRepository> <id>my-lib-repo</id> <url>http://www.your-repo.com/repository/my-lib-repo/</url> </pluginRepository> </pluginRepositories> ... </project>

您的maven构建无论下载依赖包还是插件包,都会首先尝试从maven.aliyun.com下载,如果下载不到,再从http://www.your-repo.com/repository/my-lib-repo/下载。

发布二方包

如果您需要发布二方包,需要给角色my-lib-repo-read添加相应的权限。
permissino

同时要在自己的pom.xml中添加配置如下:

<distributionManagement> <repository> <id>my-lib-repo</id> <url>http://www.your-repo.com/repository/my-lib-repo/</url> </repository> </distributionManagement>

然后就可以在构建配置的build.command中使用mvn deploy命令上传二方包了。

样例文件如下:

pom.xml


云效制品仓库 Packages 是阿里云出品的一款企业级私有仓库服务,提供基于 Maven、Gradle、NPM 等软件包管理工具的企业级私有仓库服务,用于管理企业级依赖托管。仓库支持管理 Maven 制品和 NPM 制品,并支持配置远程仓库,一键迁移现有私库。提供租户隔离、权限控制、高可用存储等服务,全面保障企业制品安全。

关于我们

了解更多关于云效DevOps的最新动态,可微信搜索关注【云效】公众号;

彩蛋:公众号后台回复【指南】,可获得《阿里巴巴DevOps实践指南》&《10倍研发效能提升案例集》;

看完觉得对您有所帮助别忘记点赞、收藏和关注呦;

#阿里云##学习路径##技术栈##数据仓库工程师#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务