Linux环境下使用nexus结合maven搭建私服

1. 私服介绍

私服可以减少开发过程中去网络上依赖jar包的拉取时间,也可以把自己公司业务的jar包放在私服上,为后期开发提供帮助。

2. 环境说明

CentOS7 64 位
jdk-8u141-linux-x64.tar.gz
apache-maven-3.5.4-bin.tar.gz
nexus-2.13.0-01-bundle.tar.gz

在这里我是直接使用的 root 用户权限进行的安装,如果小伙伴在安装过程中遇到了权限问题,可以联系公司管理人员进行调配。

3. JDK8 的安装

3.1 通过网络下载JDK

如果你的服务器可以访问外网的话可以通过以下命令获取到JDK8的安装包。

64位:wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
32位:wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-i586.tar.gz"

如果你的电脑无法访问外网,那就需要使用浏览器访问官网进行下载,然后再传送到Linux服务器上,下载地址:JDK 下载


https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

3.2 JDK的安装

使用命令解压下载好的jdk:

tar -zxvf jdk-8u141-linux-x64.tar.gz

然后进入到 jdk 目录中

cd jdk1.8.0_141

输入命令:

pwd

3.2.1 JDK环境变量配置

记录下当前的目录路径用于配置JAVA\_HOME环境变量,然后使用命令:

vim /etc/profile

在文件最下方添加代码:

export JAVA_HOME=/opt/jdk/jdk1.8.0_141
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

保存之后输入命令使文件重新生效:

source /etc/profile

然后输入命令校验JDK环境变量是否安装成功:

java  -version

Linux环境下使用nexus结合maven搭建私服教程
到此为止JDK就安装成功了。

4. maven的安装

因为maven的安装是需要依赖JDK的,所以上文先对JDK进行了安装。

4.1 maven的下载

如果连接外网通过使用命令下载(无法访问外网的小伙伴可以通过类似上传JDK的方式上传文件):

wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

解压maven:

tar -zxvf apache-maven-3.5.4-bin.tar.gz

进入到maven目录下:

cd  apache-maven-3.5.4

输入命令记录下maven的文件路径:

pwd

4.1.1 maven环境变量配置

使用命令编辑文件,在文件底部添加如下代码配置maven环境变量:

export MAVEN_HOME=/opt/maven/apache-maven-3.5.4
export PATH=$PATH:$MAVEN_HOME/bin

使用命令让配置文件重新生效:

source /etc/profile

检测maven安装成果:

mvn -version

Linux环境下使用nexus结合maven搭建私服教程

5. 安装 Nexus

5.1 什么是Nexus(摘自网络)

nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问。
nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据。
nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用。
nexus支持webDAV与LDAP安全身份认证。
nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库。

5.2 好处

1.加速构建。 
2.节省带宽。 
3.节省中央maven仓库的带宽。
4.稳定(应付一旦中央服务器出问题的情况)。
5.控制和审计。
6.能够部署第三方构件。
7.可以建立本地内部仓库。
8.可以建立公共仓库。

5.3 安装步骤

通过网络获取(无法通过网络获取的,请自行下载并上传到服务器):

wget http://download.sonatype.com/nexus/3/nexus-3.12.0-01-unix.tar.gz

解压文件:

tar -zxvf nexus-3.12.0-01-unix.tar.gz

进入到bin目录下:

cd bin

执行命令:

./nexus start

5.3.1 ROOT 用户启动报错原因和解决办法

先来看启动命令脚本:
在这里插入图片描述
这里我因为是root用户启动的命令,所以会报错:

****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.

通过提示添加环境变量可以解决这个问题:

vim /etc/profile

在文件底部添加:

export RUN_AS_USER=root

使用命令让配置文件重新生效:

source /etc/profile

然后再次尝试启动,只会有个警告信息,但是nexus是正常启动的:

****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.

5.3.2 查看nexus运行状态

使用命令查看端口是否正常启动(8081默认端口,可以进行自己更改):

lsof -i:8081

Linux环境下使用nexus结合maven搭建私服教程

5.3.3 关闭防火墙或者设置端口

因为如果想通过浏览器进行访问的话,需要设置端口,我这里为了方便直接关闭了防火墙。

systemctl stop firewalld.service

5.3.4 访问nexus

下面通过浏览器访问:

http://192.168.247.128:8081/nexus/

可以看到如下的界面:
在这里插入图片描述
有一些功能需要登录之后才可以进行管理和设置,点击右上角登录。

初始账户:admin
初始密码:admin123

在这里插入图片描述
这里仅介绍使用到的模块,其他模块有兴趣的小伙伴可以自行摸索。

5.3.5 仓库的查看和管理

点击repositorys可以查看到所有的仓库。
在这里插入图片描述

repositorytypehealth checkformatpolicyrepository statutsrepository path仓库名称类型健康状态检查格式政策仓库状态仓库路径#### 5.3.5.1 类型说明:

hosted:宿主仓库,主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
proxy:代理的意思,代理中央maven仓库,当电脑访问中央仓库的时候,先通过proxy下载到nexus仓库,然后再从nexus下载到电脑(只要有一个人下载,其他人在下载就可以通过nexus私服下载了)。
group:仓库组,可以将多个仓库聚合,从而不用在pom文件中配置多个地址;
virtual:中央仓库镜像,支持M1老版本。

5.3.6 自定义maven依赖

首先通过web管理界面设置一个仓库的类型(这里以oracle的数据库连接驱动jar包为例)。
在这里插入图片描述
因为是依赖第三方jar包,所以建立的是hosted repository。选择之后会提示让输入一些信息。
在这里插入图片描述
选中新建的仓库,先选择 Artifact Upload 然后选择 GAV 坐标的方式设置上传。在这里插入图片描述
设置自己的 GAV 坐标,选择上传的包是那种类型。
在这里插入图片描述
点击添加并上传。
在这里插入图片描述

可以在 Browse Index 下查看上传结果。在这里插入图片描述
选中上传的jar可以看到maven依赖的坐标。在这里插入图片描述

5.3.7 在程序中依赖Maven私服

在程序中使用maven私服下载jar包是比较方便的,只需要在pomp文件中添加代码即可,这个代码在nexus上是可以找到的:
在这里插入图片描述

<repositories>
        <repository>
            <id>houry</id>
            <url>http://192.168.247.128:8081/nexus/content/repositories/houry</url>
        </repository>
</repositories>

然后刷新项目依赖,就会自动下载
Linux环境下使用nexus结合maven搭建私服教程

5.4 本地项目打包上传到私服

首先在本地的maven目录下conf目录下设置settings.xml

    <server>
      <id>houry</id> <!-- 仓库唯一标识 -->
      <username>admin</username> <!-- 用户名 -->
      <password>admin123</password><!--  密码 -->
    </server>

然后在pom.xml中配置,这里需要注意的是 ID上下必须一致,也可以在web管理端中,粘贴进入pom.xml中。
在这里插入图片描述

 <distributionManagement>
        <snapshotRepository>
            <id>houry</id>
            <name>houry-repository</name>
            <url>http://192.168.247.128:8081/nexus/content/repositories/houry</url>
        </snapshotRepository>
 </distributionManagement>

在设置之前需要把仓库设置成快照版,然后才能进行上传和删除:
在这里插入图片描述
然后使用IDEA开发工具,先进行clean,在进行deploy。
在这里插入图片描述
然后查看控制台:
在这里插入图片描述
可以查看到上传成功。
在这里插入图片描述

标签: Linux, tar, 仓库, maven, 私服, nexus

相关文章推荐

添加新评论,含*的栏目为必填