centos7.6用nexus3搭建maven私服

一、环境说明

1.linux系统版本;centos7.6.1810
2.nexus3压缩包:nexus-3.20.1-01-unix.tar.gz
3.centos的jdk版本:1.8.0_271
centos7.6安装jdk教程请看:
https://blog.csdn.net/weixin_43824267/article/details/110385122
4.本地操作系统:window10
5.本地jdk版本:1.8.0_231
6.本地maven版本:apache-maven-3.6.1(必须先安装jdk才能用maven)
7.IDE工具及版本:IntelliJ IDEA 2019.1.3 x64
8.参考文章:
(1)https://www.cnblogs.com/endv/p/11204704.html
(2)https://cloud.tencent.com/developer/article/1098081

二、安装并启动nexus3

1.创建nexus3目录,传输nexus3压缩包

mkdir -p /myutil/nexus3

2.解压压缩包

cd /myutil/nexus3/
tar -zxvf nexus-3.20.1-01-unix.tar.gz

3.自定义参数(全部默认可忽略此步)

自定义nexus服务端口和上下文路径

vim /myutil/nexus3/nexus-3.20.1-01/etc/nexus-default.properties

在这里插入图片描述
使用root用户运行nexus

vim /myutil/nexus3/nexus-3.20.1-01/bin/nexus.rc

在这里插入图片描述

这里发现,不改这个文件也没什么问题。亲测只能用root用户启动nexus,其他用户无法启动。

4.有需求的话,可以自行修改JVM参数

vim /myutil/nexus3/nexus-3.20.1-01/bin/nexus.vmoptions

在这里插入图片描述

5.可以查看nexus的执行命令参数

/myutil/nexus3/nexus-3.20.1-01/bin/nexus

在这里插入图片描述
可以看到nexus命令有7个参数,重点介绍几个常用的

  • start:启动nexus
  • stop:停止nexus
  • run:前台启动nexus(不推荐)
  • status:查看nexus状态(启动或停止)
  • restart:重新启动nexus

6.启动nexus

/myutil/nexus3/nexus-3.20.1-01/bin/nexus start

在这里插入图片描述

7.浏览器访问nexus

注意要关闭centos的防火墙喔
浏览器地址栏输入:

http://192.168.3.38:8888/nexus
  • 192.168.3.38   centos主机IP
  • 8888      nexus服务端口
  • /nexus     nexus服务上下文(根路径)
    在这里插入图片描述
    在这里插入图片描述

8.获取admin初始密码,并修改密码

这个版本的nexus和之前的不一样,之前版本的nexus的admin用户默认密码是admin123,这里的放在一个文件里,要自取

cat /myutil/nexus3/sonatype-work/nexus3/admin.password

在这里插入图片描述

初次登录admin后,要求修改密码,直接修改点下一步即可

9.解析两个文件夹:nexus-3.20.1-01、sonatype-work

在这里插入图片描述
nexus-3.20.1-01    安装目录
在这里插入图片描述

  • bin    包含nexus的启动脚本和相关配置
  • etc     jetty、karaf等配置文件
  • jre     jre环境
  • lib     java架包库
  • public   关于nexus应用在本地跑起来所需要的资源
  • system  应用所有的插件和组件
  • LICENSE.txt 和 NOTICE.txt    版权声明和法律细则

sonatype-work\nexus3    数据文档
在这里插入图片描述

  • blobs/      创建blob的默认路径,如果你指定了绝对路径,那就不在这里了
  • cache/      当前缓存的karaf包的信息
  • db/       OrientDB数据库的数据,用于存储nexus的元数据的数据库
  • elasticsearch /  当前配置的Elasticsearch状态
  • etc/       大概是运行时配置状态和关于资源库的自定义的相关的东西
  • health-check/   看目录,健康检查的相关报告的存储目录吧
  • keystores/    自动生成的关于资源库的ID主键
  • log/        运行实例生成的日志文件和日志文件压缩包,貌似是每天都会生成日志文件
  • tmp/       用于存储临时文件的目录

三、配置资源库

1.资源库介绍

登录到nexus服务后,可以看到nexus主要的三种:hosted、proxy、group
在这里插入图片描述

因为是搭建maven私服,这里就关注maven仓库。
三种仓库含义:

  • hosted(宿主类型):这种类型仓库主要用于存放自己编写的jar包或是在公有远程仓库没有的第三方jar包。分为release和snapshot两种仓库。release表示发布版,是稳定的版本;snapshot表示快照版,是测试版本。
  • proxy(代理类型):从远程中央仓库中寻找数据的仓库,即存放从maven公有远程仓库下载的jar。
  • group(仓库组类型):这不是一个新的仓库类型,而是将多个上述两种仓库类型包含进来的一个仓库组。一般将这个组对外开放,用于开发人员从私服拉取jar包的入口。

2.创建自己的Blob

默认新建的仓库会存在defalut仓库里,这里可以自己建个blob,来存放自己创建的仓库
在这里插入图片描述
在这里插入图片描述

3.资源库创建

(1)创建hosted类型的release和snapshot仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同理,创建名为“lgq-snapshot”的snapshot类型仓库

(2)创建proxy类型的的中央仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里推荐远程仓库设置为国内镜像,如:

http://maven.aliyun.com/nexus/content/groups/public/
https://maven.aliyun.com/repository/central

(3)创建仓库组

创建仓库组(group类型),将上述创建的3个仓库包含进来
在这里插入图片描述
在这里插入图片描述

  • 应该将hosted类型的宿主资源库的顺序放在proxy类型的代理资源库之前
  • 因为一个group【仓库组】中可以涵括这些宿主资源库和代理资源库。而一整个的group是作为一个public,一个接口给别人使用的。所以当查找jar包的时候,如果代理资源库在前面,那就是先从远程去查找jar,而不是先从宿主类型资源库(本地仓库)去查找是否有jar。这样访问外网的消耗比起来在本地查找更大,当然是将托管资源库放在代理资源库之前的优先位置了。

四、添加nexus用户

添加release用户,用于上传本地release类型jar包的用户帐号

在这里插入图片描述
在这里插入图片描述
同理,在创建下面几个用户
snapshot:用于上传本地snapshot类型的jar包的用户帐号
thirdparty:用于上传第三方jar包的用户帐号
public:用于连接nexus私服的用户帐号

五、配置本地maven配置文件

1.打开配置文件,将以下内容替换进去

maven配置文件默认在:maven根目录/conf/setting.xml下,拷贝前注意先备份初始版本的setting.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">

  <!--配置本地仓库地址-->
  <localRepository>D:/MyUtil/maven/local-repository</localRepository>


  <!--配置在nexus创建的4个用户帐密,id不要冲突-->
  <servers>
    <server>
        <id>releaseid</id>
        <username>release</username>
        <password>release</password>
    </server>

    <server>
        <id>snapshotid</id>
        <username>snapshot</username>
        <password>snapshot</password>
    </server>
    
    <server>
        <id>publicid</id>
        <username>public</username>
        <password>public</password>
    </server>

    <server>
        <id>thirdpartyid</id>
        <username>thirdparty</username>
        <password>thirdparty</password>
    </server>
  </servers>


  <!--配置远程仓库,阿里云仓库,这样下载maven插件比较快-->
  <mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>  
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>


</settings>

六、配置IDE的maven设置(以idea为例)

1.创建maven工程(略)
2.设置idea的maven配置
在这里插入图片描述
在这里插入图片描述

七、测试上传项目到nexus私服

1.获取nexus私服仓库的地址
在这里插入图片描述

2.在需要上传到nexus私服的maven项目的pom文件加入以下配置

<!--添加到要上传的项目pom中确定上传路径开始-->
<distributionManagement>
    <repository>
        <id>releaseid</id>
        <url>http://192.168.3.38:8888/nexus/repository/lgq-release/</url>
    </repository>

    <snapshotRepository>
        <id>snapshotid</id>
        <url>http://192.168.3.38:8888/nexus/repository/lgq-snapshot/</url>
    </snapshotRepository>
</distributionManagement>
<!--添加到要上传的项目pom中确定上传路径结束-->
  • 这里不建议放在父模块中,要放到具体上传的maven项目的pom文件中,避免子模块无法继承父模块的这部分标签
  • url是nexus私服具体仓库的地址

3.在需要上传的maven项目的根目录下执行mvn deploy命令,或者在IDE工具运行deploy命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.修改版本好为RELEASE(理论上只要不是SNAPSHOT结尾即可),再次上传
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、测试打包本地jar包到maven本地仓库

1.自己准备一个jar包(小编以oracle的驱动包:ojdbc14-10.2.0.4.0.jar为例)
2.打开cmd命令,输入以下命令

前提:maven要配置好环境变量

mvn install:install-file -Dfile=D:/MyUtil/maven/ojdbc14-10.2.0.4.0.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=1.1-RELEASE -Dpackaging=jar
  • mvn deploy:maven的部署命令
  • -Dfile:部署的本地jar的本地路径,不能有空格、中文之类的非法字符
  • -DgroupId、-DartifactId、-Dversion:maven坐标,不解释
  • -Dpackaging:打包方式

在这里插入图片描述
在这里插入图片描述

九、测试上传第三方jar包到nexus私服

1.自己准备一个jar包(小编以oracle的驱动包:ojdbc14-10.2.0.4.0.jar为例)
2.打开cmd命令,输入以下命令

前提:maven要配置好环境变量

mvn deploy:deploy-file -Dfile=D:/MyUtil/maven/ojdbc14-10.2.0.4.0.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=1.2-RELEASE -Dpackaging=jar -Durl=http://192.168.3.38:8888/nexus/repository/lgq-release/ -DrepositoryId=thirdpartyid
  • mvn deploy:maven的部署命令
  • -Dfile:部署的本地jar的本地路径,不能有空格、中文之类的非法字符
  • -DgroupId、-DartifactId、-Dversion:maven坐标,不解释
  • -Dpackaging:打包方式
  • -Durl:上传的nexus私服从仓库路径,这里上传到nexus的release仓库
  • -DrepositoryId:上传jar包用的用户id,对应maven配置文件里server里的id,这里用nexus的thirdparty用户来上传第三方jar包

在这里插入图片描述
在这里插入图片描述
或者可以在nexus的网页端手动上传(部分nexus版本是没有这个功能的)
在这里插入图片描述
在这里插入图片描述

十、测试下载依赖

1.在需要下载依赖的maven项目的pom.xml中加入以下配置

<repositories>
    <repository>
        <id>publicid</id>
        <url>http://192.168.3.38:8888/nexus/repository/lgq-public/</url>
    </repository>
</repositories>
  • url是nexus私服提供给maven项目下载依赖的接口,前面有介绍,就是那个仓库组
  • 这里不建议放到父模块中,要放到具体需要下载依赖的maven项目的pom文件中,因为小编亲测发现,父模块添加下述依赖时,子模块有可能无法继承这部分标签。这样一来,就会用默认的远程仓库(或在setting.xml自己配置的阿里云仓库)去下载jar包了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强强爱java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值