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不变