[Maven]Nexus自建伺服切换地址之后遇到的问题

Posted orangleliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Maven]Nexus自建伺服切换地址之后遇到的问题相关的知识,希望对你有一定的参考价值。

背景:公司有自建的nexus伺服,需要从老的地址 http://svn.xxxx:8081 (老地址) 切换到新的域名 (http://nexus.xx)。 过渡期已经有一两年了,最近老地址的机器要退了,所以必须迁移到新机器,记录下遇到的问题。

Nexus 使用

公司内部的开发,测试,以及发布都统一的Nexus仓库,包括Java服务端,安卓。

下面说的502,是无法从老地址下载的一种统称

问题和解决

1 需要更怎么更新配置呢
主要包括repositories pluginRepositories 节点中url的变更

2 哪些地方需要更新配置呢?
算是checklist,需要自查下

  • RD QA的本地使用的电脑的 nexus settings.xml中的相关配置
  • 编译机中 setting.xml的相关配置
  • 检查项目中的 pom.xml 或者是 parent pom.xml 中是否配置了nexus的地址

也就是容易被人找来问到的

1 很难及时通知或者周知到所有人
地址切换从过渡期开始就发过多次邮件,老地址彻底下掉的时候通过 tech邮件组和IM广播也多次通知,还是有少部分同学没有修改。本地编译打包之后遇到502错误,来咨询。 这种情况告知就好,现在没有说能在maven或者idea的插件中能做到,主动通知更新。

  • 邮件,IM多次周知
  • CM或者DEV wiki中及时更新模版

2 项目pom 或者父pom中定义了nexus远程地址,导致502访问不到

这种通过生成 effective pom 或者通过IDE的插件来检查就好。有些部门或者项目确实这么定义的,可能是要同时对接几个内部的伺服,用来做区分的。

mvn help:effective-pom  -Doutput=effective_pom.xml

3 项目中的其他依赖Jar指向了老的nexus地址, 导致某些jar的依赖 502访问不到
也就是说,编译打包中的一个jar有问题,下载不到,又重定向到了老地址,需要配置下mirrors 下的 mirrorOf 属性为 *

        <mirrors>
                <mirror>
                        <id>TEST</id>
                        <name>TEST Public Mirror</name>
                      <url>http:/xxxx/nexus/content/groups/public</url>
                        <mirrorOf>*</mirrorOf>
                </mirror>
        </mirrors>

好了,就这些,比较小众的事情,希望对你又帮助。

以上是关于[Maven]Nexus自建伺服切换地址之后遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

centos7案例实战——Nexus3伺服仓库服务器搭建

maven集成nexus伺服服务实现项目快速自动化构建与发布

maven集成nexus伺服服务实现项目快速自动化构建与发布

Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 )

Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ⑥ ( 配置 Sonatype Nexus 搭建的 Maven 私服 | 配置端口号 | 配置JVM )

自建Nexus私服