全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
云效

在云效中使用私有Maven仓库

更新时间:2017-10-10 11:30:25

目前RDC没有提供Maven二方库的上传功能。如果您需要从自己的Maven私服中下载指定的包,或者向自己的私服中上传二方包的话,可以按照如下的方式配置。下面提供的方法,既可以保证您的仓库的安全性,又可以实现上传和下载二方包的功能。

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

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

保证私服公网可见

首先要保证您的私服在公网是可见的,这样RDC才能从您的私服下载二方包。验证方式:在一台您的企业内网之外的机器上执行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-readeruser

在settings.xml中添加认证信息

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

  1. <server>
  2. <id>my-lib-repo</id>
  3. <username>my-lib-repo-reader</username>
  4. <password>my-lib-repo-reader</password>
  5. </server>

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

配置pom.xml的下载包顺序

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

  1. <project>
  2. ...
  3. <repositories>
  4. <repository>
  5. <id>aliyun-repo</id>
  6. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  7. </repository>
  8. <repository>
  9. <id>my-lib-repo</id>
  10. <url>http://www.your-repo.com/repository/my-lib-repo/</url>
  11. </repository>
  12. </repositories>
  13. <pluginRepositories>
  14. <pluginRepository>
  15. <id>central</id>
  16. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  17. </pluginRepository>
  18. <pluginRepository>
  19. <id>my-lib-repo</id>
  20. <url>http://www.your-repo.com/repository/my-lib-repo/</url>
  21. </pluginRepository>
  22. </pluginRepositories>
  23. ...
  24. </project>

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

发布二方包

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

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

  1. <distributionManagement>
  2. <repository>
  3. <id>my-lib-repo</id>
  4. <url>http://www.your-repo.com/repository/my-lib-repo/</url>
  5. </repository>
  6. </distributionManagement>

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

样例文件如下:

pom.xml

settings.xml

本文导读目录