Nexus3私服搭建教程

Centos7系统下Nexus3私服搭建教程,以及搭建中可能出现的问题部分解决方案。

搭建环境所需要的jar包版本

jdk-8u161-linux-x64.tar.gz
apache-maven-3.6.1-bin.tar.gz
nexus-3.22.1-02-unix.tar.gz

一、简介

  私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
在这里插入图片描述

二、安装JDK

1. 卸载系统自带的OpenJDK以及相关的java文件(没有就不用操作)

1.1 查看系统是否自带JDK
输入命令:java -version
在这里插入图片描述
1.2 查看相关java文件
输入命令:rpm -qa | grep java
在这里插入图片描述
1.3 定位java执行路径(可以不用操作)
输入命令:which java
输入命令:ls -lrt /usr/bin/java
输入命令:ls -lrt /etc/alternatives/java
在这里插入图片描述
1.4 删除相关文件
首先键入命令 su root 输入密码获取root权限,然后将上一步中带openjdk的文件全部删除,具体根据你安装的版本不同,文件也不尽相同,这里以上一步中的文件为例。
输入命令: rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
在这里插入图片描述
输入命令:rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64在这里插入图片描述
1.5 查看删除结果
输入命令:java -version
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200801233218108.png
完成卸载

2. Centos7下创建Jdk存放文件夹 上传Jdk1.8(jdk-8u161-linux-x64.tar.gz)压缩包。

2.1 创建文件夹 上传jdk到指定文件夹解压
输入命令:cd /usr
输入命令:mkdir jdk
输入命令:cd jdk
进行上传Jdk
在这里插入图片描述
上传完成
进行Jdk解压
输入命令:tar -zxvf jdk-8u161-linux-x64.tar.gz -C ./
在这里插入图片描述
解压完成

2.2 添加环境变量
输入命令:vim /etc/profile
在这里插入图片描述
编辑配置环境

配置文件需要添加的内容:
	输入i启动编辑模式添加以下三项
    export JAVA_HOME="/usr/jdk/jdk1.8.0_161"http.server_port=80
    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
    export PATH=$PATH:${JAVA_HOME}/bin
按esc 加 ;wq保存

在这里插入图片描述
保存完成重新加载配置
输入命令:source /etc/profile
输入命令:java -version
在这里插入图片描述
完成JDK的安装配置

三、 搭建Maven

1. Centos7下创建Maven存放文件夹 上传Maven(apache-maven-3.6.1-bin.tar.gz)压缩包。

1.1 创建文件夹 上传Maven到指定文件夹解压
输入命令:cd /usr/local
输入命令:mkdir maven
输入命令:cd maven
进行上传Maven安装包
在这里插入图片描述
上传完成
进行Maven解压
输入命令:tar -zxvf apache-maven-3.6.1-bin.tar.gz -C ./
在这里插入图片描述
1.2 添加环境变量
输入命令: vim /etc/profile
在这里插入图片描述
编辑配置环境: ↓

配置文件需要添加修改的内容:
	输入i启动编辑模式添加修改以下二项
    export MAVEN_HOME="/usr/local/maven/apache-maven-3.6.1"
    export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin
	按esc 加 ;wq保存

在这里插入图片描述
保存完成重新加载配置
输入命令:source /etc/profile
输入命令:mvn -v
在这里插入图片描述
完成maven配置

四、 部署Nexus

1. Centos7下创建Nexus存放文件夹 上传Nexus(nexus-3.22.1-02-unix.tar.gz)压缩包。

1.1 创建文件夹 上传Nexus到指定文件夹解压
输入命令:cd /usr/local
输入命令:mkdir nexus
输入命令:cd nexus
进行上传Naxus安装包
在这里插入图片描述
上传完成
进行Nexus解压
输入命令:tar -zxvf nexus-3.22.1-02-unix.tar.gz -C ./
在这里插入图片描述
解压完成生成两个文件夹
nexus-3.22.1-02
sonatype-work

2. 修改nexus主要配置文件(对于可能出现的问题进行配置,如没有出现可以直接进行第3步)

2.1 磁盘空间不足问题(默认分配4G,虚拟机搭建可能出现磁盘空间不足的问题)
也可以通过以下的解决方案的文件夹修改内存大小保存文件位置
报错信息:↓

ERROR [FelixStartLevel] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - Exception `0D619DD7` in storage `plocal:/opt/nexus-3.22/sonatype-work/nexus3/db/OSystem`: 2.2.36 (build d3beb772c02098ceaea89779a7afd4b7305d3788, branch 2.2.x)
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'OSystem' due to limited free space on the disk (2784 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .

**解决方案:**调整默认创建的磁盘空间大小
-Dstorage.diskCache.diskFreeSpaceLimit=2048 磁盘初始化大小
进入nexus的bin目录下修改nexus.vmoptions文件
操作命令:cd /usr/local/nexus/nexus-3.22.1-02/bin
操作命令:vim nexus.vmoptions

编辑配置环境 ↓

配置文件需要添加的内容:
	输入i启动编辑模式添加以下一项
-Dstorage.diskCache.diskFreeSpaceLimit=2048
	按esc 加 ;wq保存

在这里插入图片描述
完成配置

2.2 警告操作权限的问题(不修改也没什么问题)

警告信息:↓

WARNING: Detected execution as "root" user. This is NOT recommended!

方案1)bin目录下的nexus.rc文件添加:
输入命令:vim nexus.rc
加入run_as_user=root

方案2)加入系统变量
输入命令:vim /etc/profile
加入export RUN_AS_USER=root

方案3)在vim nexus,里面有一句:run_as_root=true,原来是此处直接给拦死了,故只要改成run_as_root=false 就可以。

方案4)添加nexus用户,即:
useradd nexus
chown -R nexus:nexus /opt/nexus
然后su nexus 执行:./nexus start 就成功了。

2.3 用./nexus run 实时启动可以看到日志
可以根据日志信息,定位出错位置进行处理

3. 开启端口访问权限

3.1 开启nexus的端口号
输入命令:firewall-cmd --zone=public --add-port=8081/tcp --permanent
在这里插入图片描述
3.2 重启防火墙 查看端口开启列表
输入命令:firewall-cmd --reload
输入命令:firewall-cmd --zone=public --list-ports
在这里插入图片描述
开启nexus的8081端口

4. 启动nexus并访问(修改配置文件3, 开启端口号4)

4.1 到bin目录下启动
输入命令:cd /usr/local/nexus/nexus-3.22.1-02/bin/
输入命令:./nexus start
输入命令:./nexus status
完成nexus的启动
在这里插入图片描述
4.2 使用浏览器打开192.168.164.128:8081
(访问 服务器地址:端口号 默认端口号为8081)

在这里插入图片描述
4.3 查找密码(nexus3.17之前默认账号为admin 密码为admin123,Nexus3.17之后默认账号为admin密码在sonatype-work文件夹中的admin.password文件中)。
输入命令:cd /usr/local/nexus/sonatype-work/nexus3/
输入命令:vim admin.password
在这里插入图片描述
复制出密码dca82b59-3869-4200-9a32-a369e99fd525
复制到文本编译器转成UTF-8格式(以防不识别)

4.4 进行登录
在这里插入图片描述
登录完成需要修改密码(修改密码后admin.password文件会消失)
在这里插入图片描述
完成登录

五、 Nexus3客户端介绍

1. 仓库界面功能(使用插件翻译过后 意思可能有些偏差)

首页
在这里插入图片描述
管理员页面
在这里插入图片描述

2. 仓库类型介绍

在这里插入图片描述
(1)Group仓库组:

在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

(2)Hosted宿主仓库:

用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说咱们自己写的jar包,在central repository是获取不到的,就需要手工上传到hosted里,一般用来存放公司自己的jar包。

(3)Proxy远程代理仓库:

比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用。

(4)Virtual废弃代理仓库(nexus3版本之前的)。

maven-public:
maven-central、maven-release和maven-snapshot三个库的合集。
maven-release:
用来存放release(发行)版本的jar包。
maven-snapshot:
用来存放snapshot(快照)版本的jar包。

六、 上传jar包到Maven私服

####1. 修改Maven安装包下的conf目录中的settings.xml文件
1.1 在servers节点中添加如下内容

</servers>
	<!--配置授权信息-->	
<server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
	
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

在这里插入图片描述
配置完成后保存

2. 在项目中的pom.xml添加远程发布的私服地址

2.1 选择项目的pom.xml文件修改以下信息

<!--添加私服地址 发布jar-->
<distributionManagement>
    <repository>
        <!--此id要与settings.xml里面的server的id对应-->
        <id>releases</id>
        <name>releases Repository</name>
        <url>http://192.168.164.128:8081/repository/maven-releases/</url>
    </repository>

    <snapshotRepository>
        <id>snapshots</id>
        <name>snapshots</name>
        <url>http://192.168.164.128:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

在这里插入图片描述
完成上传配置

3. 发布jar包

3.1 先点击clean,再点击deploy就会自动根据项目的版本上传到对应的仓库。
  如果pom.xml上版本是1.1-SNAPSHOT则会deploy到maven-snapshot
  如果是1.1.RELEASE则会deploy到maven-release
在这里插入图片描述
3.2 一般打包时maven会自动执行单元测试很耗时间,如果想略过该过程可以在pom文件添加如下插件。

<!-- 打包跳过测试-->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <testFailureIgnore>true</testFailureIgnore>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>

3.3 打包上传私服仓库
在这里插入图片描述
3.4 查看私服仓库
在这里插入图片描述
完成上传
注意:如果创建新的maven仓库Deployment policy一定要设置成allow redeploy,否则会上传失败

七、 从私服下载jar包

1. 修改Maven安装包下的conf目录中的setting.xml文件

1.1 添加私服仓库下载地址

<profiles> 
   <!-- 配置本机所有的Maven项目都使用私服 -->
    <profile>
        <!--profile的id -->
        <id>nexus</id>
        <repositories>
            <repository>
                <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
                <id>central</id>
                <!--仓库地址,即nexus仓库组的地址 -->
                <url>http://192.168.164.128:8081/repository/maven-public/</url>
                <!--是否下载releases构件 -->
                <releases><enabled>true</enabled></releases>
                <!--是否下载snapshots构件 -->
                <snapshots><enabled>true</enabled></snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
            <pluginRepository>
                <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
                <id>central</id>
                <url>http://192.168.164.128:8081/repository/maven-public/</url>
                <releases><enabled>true</enabled></releases>
                <snapshots><enabled>true</enabled></snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>

</profiles>
<!-- 激活配置 -->
<activeProfiles>
    <activeProfile>nexus</activeProfile>
</activeProfiles>

在这里插入图片描述
配置完成后保存

1.2 针对单个项目,这个可以添加到项目的pom.xml文件里,如果很多项目都需要可以添加到setting.xml文件中(这个是你上传的jar包进行下载)。

添加pom.xml依赖

<dependency>
    <groupId>com.company</groupId>
    <artifactId>dept_test</artifactId>
    <version>1.0.SNAPSHOT</version>
</dependency>

在这里插入图片描述
完成私服依赖导入

八、 添加阿里云仓库

1. 配置nexus3管理

1.1 进入nexus管理页面点击Repositories,右边点击Create repository,在接下来的页面选择“maven2 proxy”。
  在具体配置页面取名aliyun-repository,这里建议用a开头(估计按字 母排序将它排第一位)
URL输入:http://maven.aliyun.com/nexus/content/groups/public/
其他默认值即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完成设置

1.2 选择maven-public添加配置的阿里私服
在这里插入图片描述
在这里插入图片描述
保存完成添加
注意: 把添加的aliyun-repository仓库放到比maven-central高一个级别,这样下载jar包时会优先使用aliyun的仓库下载(也可以放到第一位优先使用aliyun仓库)。

2. 修改Maven安装包下的conf目录中的setting.xml文件

2.1 添加私服中央仓库

<!--配置私服中央仓库:如果仓库中没有会从阿里云中下载-->
<mirror>
    <id>central</id>
    <name>central</name>
    <mirrorOf>central</mirrorOf>
    <url>http://192.168.164.128:8081/repository/maven-public/</url>
</mirror>

复制maven-public的URL地址(粘贴到setting配置文件的url中)
在这里插入图片描述

3. 修改项目的pom.xml文件添加下载设置

3.1 添加私服中央仓库

<repositories>
    <repository>
        <id>releases</id>
        <name>maven-public</name>
        <url>http://192.168.164.128:8081/repository/maven-public/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

在这里插入图片描述
完成配置

九、 其他

1. 日志文件在sonatype-work/nexus3/log/下 。
2. 验证:

  将maven的setting.xml仓库设置指向私服—>删除本地仓库某个在用的jar—>maven重新import—>服务器上同时查看网络连接可以看到有连接到maven.aliyun.com(59.110.144.164)了,可以断定从aliyun下载了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值