迁移参考文档:https://help.sonatype.com/repomanager3/backup-and-restore/restore-exported-databases
Nexus 2.x 与 Nexus 3.x 版本的区别:
Nexus 2.x 服务器直接存储 Jar 包
Nexus 3.x 服务器存储的是二进制文件
Nexus 仓库管理工具只需要满足一个条件就能运行,那就是我们的系统上要有JRE环境(主要支持Oracle的Java版本)。一般使用Java7或Java8,本文使用JDK8版本。JDK的安装:
# rpm -Uvh /root/softwares/jdk-8u291-linux-x64.rpm
接下来安装 Nexus,Nexus Repository Manager OSS 一般都会捆绑一个 Jetty 实例,默认情况下,Jetty 会监听本地所有IP地址的 8081 端口。Nexus 的安装非常简单,解压即可使用。
# 到官网下载最新版的 Nexus
# tar -xvf nexus-3.32.0-03-unix.tar.gz
# mv nexus-3.32.0-03 sonatype-work/ /data/apps
sonatype-work
目录里面包含了所有的仓库及仓库的配置信息,由于这些信息是在 nexus
之外,所以方便了后续的升级工作。默认情况下,nexus
及 sonatype-work
需要在同一个目录下。在本文中,我们把 nexus
安装到了 /data/apps
目录,所以,sonatype-work
目录也要放置在 /data/apps
目录下。(关于 sonatype-work
目录的位置也是可配置的,配置文件为 $NEXUS_HOME/conf/nexus.properties
,新版本已经没有这个文件了。)。
接下来把它们移到 /data/apps
目录,并设置软链接:
# cd /data/apps/
# ln -sv nexus-3.32.0-03 nexus
好了之后,先别着急运行之。我们需要设置 Nexus 的环境变量 NEXUS_HOME
,修改 /etc/profile
文件,追加如下一行,
# echo "export NEXUS_HOME=/data/apps/nexus" >> /etc/profile
设置完毕,重新加载 /etc/profile
配置文件,并测试 NEXUS_HOME
环境变量是否生效,操作如下,
# . /etc/profile
# echo $NEXUS_HOME
/data/apps/nexus
接下来,我们为了简单起见,使用 root 用户进行启动 Nexus,在 ~/.bashrc
配置文件中设置 RUN_AS_USER
环境变量,
# echo "export RUN_AS_USER=root" >> ~/.bashrc
重新加载 ~/.bashrc
配置文件,并检查其是否生效,
# . ~/.bashrc
# echo $RUN_AS_USER
root
首先启动 Nexus 的控制台,看是否报错,如果没有报错,则可以以服务的形式启动。另外Nexus的日志文件在 NEXUS_HOME/logs
目录下,文件为 wrapper.log。操作如下:
# cd /data/apps/nexus
# ./bin/nexus console
使用浏览器打开 10.20.10.15:8081
即可,用户名为 admin
, 密码放在了部署目录下的 admin.password
文件里。如下:
# cat /data/apps/sonatype-work/nexus3/admin.password
7583055e-5adc-49dc-b2a4-1cabf1f86f52
登录后的界面如下,
仓库类型
默认仓库说明
- maven-central:maven 中央库,默认从 https://repo1.maven.org/maven2/ 拉取 jar
- maven-releases:私库发行版 jar,初次安装请将 Deployment policy 设置为 Allow redeploy
- maven-snapshots:私库快照(调试版本)jar
- maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地 maven 基础配置 settings.xml 或项目 pom.xml 中使用
仓库类型说明
-
group:这是一个仓库聚合的概念,用户仓库地址选择 Group 的地址,即可访问 Group 中配置的,用于方便开发人员自己设定的仓库。maven-public 就是一个 Group 类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为 Releases、Snapshots、Central,当然你也可以自己设置。
-
hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的 jar 文件
-
snapshots:本地项目的快照仓库
-
releases: 本地项目发布的正式版本
-
proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下 Remote Storage 属性的值即被代理的远程仓库的路径),如可配置阿里云 maven 仓库
-
central:中央仓库
如何使用该私服
家目录下的 ~/.m2/settings.xml
配置如下,
➜ springboot-starter-demo git:(master) ✗ cat ~/.m2/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<id>snapshots</id>
<username>admin</username>
<password>Abcd1234567</password>
</server>
<server>
<id>releases</id>
<username>admin</username>
<password>Abcd1234567</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>dev1_profile</id>
<repositories>
<repository>
<id>dev1_nexus</id>
<url>http://10.20.20.15:8081/repository/maven-public/</url>
<r