Nexus版本是2.X , 开发需要使用新特性,进行升级,通过查询官网发现,需要升级到2.X特定版本,才能升级到3.X的对应版本.
https://help.sonatype.com/repomanager3/upgrade-compatibility---repository-manager-2-to-3
首先升级到2.X的最近版本2.14.8, 从官网直接下载,解压, 然后修改对应的数据目录为现在版本的数据目录, 启动就可以了
在 2.14.8中配置升级选项
其中4处为同步密码
添加完成以后
下载3.12.0最新版本
[root@jenkins bin]# cat /usr/local/nexus-3.12.0-01/bin/nexus.rc
run_as_user="root"
修改启动用户
[root@jenkins bin]# cat /usr/local/nexus-3.12.0-01/bin/nexus.vmoptions
-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=/opt/nexus/sonatype-work/nexus3 ##此处修改数据存放目录为新目录,与之前区别开
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.startLocalConsole=false
#修改数据存放目录
[root@jenkins etc]# cat /usr/local/nexus-3.12.0-01/etc/nexus-default.properties
application-port=8082
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
#修改临时端口,因为同一台升级,修改端口,避免冲突
登录以后配置同步
配置链接信息
迁移所有仓库
等待完成以后,直接continue 然后 直接下一步,完成.
****参考链接
https://www.ilanni.com/?p=12366
#############注意升级以后nexus的路径有了变化
http://*****:8081/nexus/content/groups/public/ 以前的地址
http://*****:8081/content/groups/public/ 新的地址
这样需要修改maven的 .m2/setting.xml文件, 在打包的时候才能找到正确的依赖包.
如果不这样处理, 我的方法是在仓库前端加一个nginx代理
server {
listen 8081;
server_name **;
location / {
rewrite ^/nexus/(.*) http://******:8082/$1 permanent;
}
}
Rewtite 匹配/nexus/ 跳转到 nexus真正地址/ 参数保持不变,这样就不需要其他人进行修改,保持原有url不变