烂泥:maven私库nexus2.14.1迁移到nexus3.1

本文由ilanniweb提供友情赞助,首发于烂泥行天下

想要获得更多的文章,可以关注我的微信ilanniweb

公司的代码依赖是通过maven进行管理的,而maven的私库我们使用的是nexus,目前使用的是nexus2.11.2版本。

考虑到后续要使用docker虚拟容器,打算把nexus2升级到nexus3.1,nexus3.1是可以作为docker的仓库的,所以就有了本篇文章。

有关nexus2.11.2版本升级到nexus2.14.1很简单,我们只需要把安装nexus2.14.1,修改仓库的存储路径就行了。

如果要把nexus2的仓库升级到nexus3.1,就需要进行单独的配置,而且必须是nexus2.14.1才能迁移到nexus3.1。

PS:本次实验,我们所需要的jdk环境全部是在同一台服务器上。

nexus2使用的是jdk 1.7以上版本,而nexus3使用的是jdk1.8以上版本。

所以我们在配置jdk时,没有把jdk加入到系统的环境变量中,而是根据不同的nexus版本加载不同的jdk版本。

为了更形象的说明仓库的迁移,在此我们以ilanni和ilanniproxy仓库为例。

一、下载并安装nexus2.14.1

nexus2.14.1的安装和配置,需要以下几个步骤。

1.1 配置jdk环境

nexus是基于java语言开发的,所有在安装nexus2.14.1之前,我们需要配置nexus2.14.1运行所需要的jdk环境。

使用如下命令:

wget http://mirrors.linuxeye.com/jdk/jdk-7u80-linux-x64.tar.gz

tar -xf jdk-7u80-linux-x64.tar.gz -C /usr/local/

chown root:root -R /usr/local/jdk1.7.0_80/

clip_image001

jdk1.7安装完毕回,我们可以把它配置到系统的环境变量中,如下:

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_80

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

clip_image002

source /etc/profile

java –version

clip_image003

1.2 下载、安装nexus2.14.1

下载和安装nexus2.14.1,使用如下命令:

wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.1-01-bundle.tar.gz

tar -xf nexus-2.14.1-01-bundle.tar.gz -C /usr/local/

cd /usr/local/nexus-2.14.1-01/

clip_image004

clip_image005

把nexus2.14.1加入系统服务,使用如下命令:

cp bin/nexus /etc/init.d/nexus2

chkconfig –add nexus2

chkconfig nexus2 on

修改nexus2脚本的配置文件,如下:

vim /etc/init.d/nexus2

NEXUS_HOME=”/usr/local/nexus-2.14.1-01/”

RUN_AS_USER=root

clip_image006

在前面我们介绍了jdk没有加入到系统的环境变量中,所以我们要修改nexus2.14.1启动时要使用的jdk版本,如下:

vim ./bin/jsw/conf/wrapper.conf

wrapper.java.command=/usr/local/jdk1.7.0_80/bin/java

clip_image007

以上修改完毕后,我们再来修改nexus2.14.1监听的端口,以及仓库的存储位置,如下:

vim conf/nexus.properties

application-port=8081

nexus-work=${bundleBasedir}/sonatype-work/nexus

clip_image008

以上就是2.14.1的安装与配置。

1.2 启动nexus2.14.1

现在我们可以启动nexus2.14.1,使用如下命令:

/etc/init.d/nexus2 start

clip_image009

Nexus2.14.1启动完毕后,我们现在可以通过web进行访问nexus2.14.1,如下:

http://192.168.1.231:8081/nexus

clip_image010

通过上图,我们可以很明显的看到nexus2.14.1已经正常启动。

现在我们登录到nexus2.14.1管理后台,nexus管理后台默认的管理员用户和密码是:admin/admin123

clip_image011

clip_image012

上图说明我们已经正常登录到nexus2.14.1管理后台。

1.3 新建ilanni私库

登录nexus2.14.1管理后台后,我们来创建一个自己的私有仓库ilanni,如下:

Repositories-Add-Hosted Repository

clip_image013

clip_image014

我们只需要填写Repository ID和Repository Name,其他的保持默认即可。

clip_image015

通过上图,我们可以看到ilanni这个nexus2.14.1仓库已经创建完毕。

注意上图中的http://192.168.1.231:8081/nexus/content/repositories/ilanni/连接,该链接地址就是ilanni私库的地址。

1.4 上传jar包和依赖使用

ilanni私库创建完毕后,我们现在来给ilanni仓库手工上传一个maven依赖的jar包epps-merchantsignature-0.0.2.jar。

在上传jar依赖包之前,我们还需要知道该依赖在maven编译文件pom.xml配置中goupid、artifactid和version。如下:

<dependency>

<groupId>com.suning.epps.codec.Digest</groupId>

<artifactId>epps-merchantsignature</artifactId>

<version>0.0.2</version>

</dependency>

clip_image016

有了goupid、artifactid和version与此对应关系,我们现在就可以上传该jar依赖了。如下:

clip_image017

clip_image018

上图中所需要填写的相关信息都是从前面pom.xml文件中获得的。

clip_image019

clip_image020

clip_image021

clip_image022

clip_image023

上图就已经说明jar依赖上传成功。

注意:上图中的xml圈出来的部分,可以很明显的看出这个和我们前面pom.xml文件中配置的该依赖一模一样的。

现在我们是知道了该jar包的goupid、artifactid和version,通过pom.xml文件

但是如果我们不知道goupid、artifactid和version的话,那我们也可以进行自定义goupid、artifactid和version。

下面来一个实例,现在有一个ilanni.jar文件,是代码所依赖的,要把它上传到nexus私库中。

同时我们现在给该jar文件定义的groupid为com.ilanni,定义的artifactid为ilanilog,而定义的version为1.0.0。

上传具体操作如下:

clip_image024

clip_image025

上传完毕后,我们就可以得到能在pom.xml文件中使用的XML内容如下:

<dependency>

<groupId>com.ilanni</groupId>

<artifactId>ilanilog</artifactId>

<version>1.0.0</version>

</dependency>

除此之外,如果我们不使用内网依赖仓库的话,我们也可以使用公共的依赖仓库,在公共依赖仓库中找到自己需要的依赖复制对应xml到自己的pom.xml文件,就能使用该依赖。

来个例子:

现在代码里面需要slf4j-log4j12-1.7.21.jar这个jar包,那么我们就可以从maven官网仓库获取,如下:

http://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12/1.7.21

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.7.21</version>

</dependency>

clip_image026

现在只需要把XML内容复制到自己的pom.xml文件中,就可以使用该依赖了。

1.5 新建代理仓库ilanniproxy

在平时使用过程中,我们使用最多的还是代理远程的maven仓库,这样可以节省公司网络带宽,所以在此我们新建一个代理jenkins仓库的maven仓库ilanniproxy。

jenkins仓库的地址是:

http://repo.jenkins-ci.org/public/

现在我们来新建ilanniproxy仓库,如下:

clip_image027

clip_image028

Repository ID和Repository Name可以进行自定义,Remote Storage Location填写的是需要代理的远程maven仓库,在此填写的是http://repo.jenkins-ci.org/public/

clip_image029

ilanniproxy仓库创建完毕后,我们就可以看到ilanniproxy仓库连接地址:

http://192.168.1.231:8081/nexus/content/repositories/ilanniproxy/

目前ilanniproxy仓库是空的,我们通过maven进行编译构建时,ilanniproxy仓库才会去http://repo.jenkins-ci.org/public/仓库下载相关依赖。如下:

clip_image030

clip_image031

通过上图,我们可以看明显的看到目前ilanniproxy仓库,已经有相关的依赖了。

为了下面验证ilanniproxy仓库的完整性,我们在此记录wagon-gitsite-0.3.5.jar依赖。

1.6 配置Upgrade:Agent

Nexus2.14.1要进行仓库迁移的话,需要我们配置Upgrade:Agent,Upgrade:Agent的配置比较简单,如下:

clip_image032

上图中的Access Token非常重要,在此我们配置的是123456。

clip_image033

上图是我们配置好了Upgrade:Agent,要把nexus2.14.1仓库迁移到nexus3.1,需要我们安装和配置nexus3.1。

下面开始介绍有关nexus3.1相关的知识点。

二、下载并安装nexus3.1

nexus3.1的安装和配置,需要以下几个步骤。

2.1 配置jdk环境

nexus3.1必须使用jdk1.8以上版本,下面安装和配置jdk。如下:

wget http://mirrors.linuxeye.com/jdk/jdk-8u92-linux-x64.tar.gz

tar -xf jdk-8u92-linux-x64.tar.gz -C /usr/local/

chown root:root -R /usr/local/jdk1.8.0_92/

clip_image034

2.2 下载、安装nexus3.1

下载和安装nexus3.1,使用如下命令:

wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.1.0-04-unix.tar.gz

tar -xf nexus-3.1.0-04-unix.tar.gz -C /usr/local/

cd /usr/local/nexus-3.1.0-04

clip_image035

clip_image036

修改运行nexus3.1所使用的用户,如下:

vim bin/nexus.rc

run_as_user=”root”

clip_image037

把nexus3.1加入到系统服务,如下:

ln -s /usr/local/nexus-3.1.0-04/bin/nexus /etc/init.d/nexus3

chkconfig –add nexus3

chkconfig nexus3 on

clip_image038

修改nexus3.1启动时要使用的jdk版本,如下:

vim bin/nexus

INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_92

clip_image039

修改nexus3.1监听的端口,在此我们修改为8282端口,如下:

vim etc/nexus-default.properties

application-port=8282

clip_image040

修改nexus3.1数据以及相关日志的存储位置,如下:

vim bin/nexus.vmoptions

-XX:LogFile=./sonatype-work/nexus3/log/jvm.log

-Dkaraf.data=./sonatype-work/nexus3

-Djava.io.tmpdir=./sonatype-work/nexus3/tmp

clip_image041

2.2 启动nexus3.1

现在我们可以启动nexus3.1,使用如下命令:

/etc/init.d/nexus3 start

clip_image042

Nexus3.1启动后,我们现在可以通过web进行访问,如下:

http://192.168.1.231:8282

clip_image043

通过上图,我们可以很明显的看到nexus3.1已经正常启动。

现在我们登录到nexus3.1管理后台,管理员用户和密码是:admin/admin123。

clip_image044

clip_image045

上图说明我们已经正常登录到nexus3.1管理后台。

2.3 配置Upgrade

要把nexus2.14.1仓库迁移到Nexus3.1,还需要我们在nexus3.1上开启Upgrade功能,如下:

clip_image046

clip_image047

clip_image001[4]

clip_image050

到此nexus3.1的Upgrade功能,开启完毕。

三、迁移、验证ilanni和ilanniproxy仓库

Nexus2.14.1和nexus3.1各自配置完毕后,我们现在开始迁移nexus2.14.1上的ilanni和ilanniproxy仓库。

3.1 迁移操作

仓库迁移操作是在nexus3.1的web界面完成的,具体操作如下:

clip_image051

clip_image052

上图中的url填写的是nexus2.14.1的web访问地址,Access Token是nexus2.14.1的Upgrade:Agent中配置的是123456。

下面基本就可以一路next就行了。

clip_image053

clip_image054

clip_image055

上图中,我们迁移仓库只选择为ilanni和ilanniproxy。

clip_image056

上图是要迁移的相关依赖。

clip_image057

clip_image058

clip_image059

clip_image060

这个过程会有花费点时间,需要耐心等待一下。

clip_image061

clip_image062

clip_image063

上图说明已经仓库已经迁移完毕,下面我们来验证这两个仓库的完整性。

3.2 验证ilanni私库

仓库迁移完毕后,我们现在来验证ilanni这个私库,如下:

clip_image064

通过上图,我们可以很明显的看出ilanni和ilanniproxy仓库已经迁移过来。下面我们要验证下仓库的完整性。Ilanni仓库我们以ilanni.jar这个依赖为例,如下:

clip_image065

clip_image066

clip_image067

clip_image068

clip_image069

通过上图我们可以很明显的看出,ilanni仓库里面的ilanni.jar依赖已经迁移过来。

下面我们再来看看ilanniproxy仓库。

3.3 验证ilanniproxy

上一章节我们已经验证ilanni仓库的迁移完整性,这次我们再来验证ilanniproxy仓库,如下:

clip_image070

clip_image071

clip_image072

clip_image073

通过以上几个图片ilanniproxy仓库也已经迁移过来了。

3.4 启用匿名访问权限

Nexus3.1仓库迁移完毕后,匿名用户是无法访问仓库功能,为了后续访问的方便,我们开启匿名访问功能。如下:

clip_image074

clip_image075

clip_image076

未经允许不得转载:烂泥行天下 » 烂泥:maven私库nexus2.14.1迁移到nexus3.1

赞 (16)