Linux搭建自己Nexus私服的实现方法

本文介绍如何在Linux服务器通过Docker搭建Nexus私服

一、安装Nexus

1、创建存放数据的位置

# 进入个目录,这个你们随便
cd /srv
# 创建个文件夹
mkdir nexus-data
# 赋予权限,不然启动会报错,无操作权限
chmod 777 nexus-data

2、启动

执行以下命令即可,会自动拉取镜像并启动

docker run -d -p 8081:8081 --name nexus -v /srv/nexus-data:/nexus-data --restart=always sonatype/nexus3

通过docker logs -f nexus查看启动日志,当出现Started Sonatype Nexus OSS说明启动成功,这时通过http://ip:8081即可访问

点击右上角Sign in进行登录,账号为admin,密码需要去镜像中查看

# 进入镜像
docker exec -it nexus bash
# 查看密码,路径在登录框会提示,然后复制即可,登陆成功后会让你修改密码
cat /nexus-data/admin-password

至此,就启动完成了,进入主页后点击左边菜单栏的Browse即可查看你拥有的仓库啦

二、Nexus仓库

1、仓库类型

Nexus有四种仓库和四种仓库类型

a、仓库

仓库名 描述
maven-central maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases 私库发行版jar
maven-snapshots 私库快照(调试版本)jar
maven-public 仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用

b、类型

类型 描述
group(仓库组类型) 用于方便开发人员自己设定的仓库
hosted(宿主类型) 内部项目的发布仓库(内部开发人员,发布上去存放的仓库)
proxy(代理类型) 从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径)
virtual(虚拟类型) 虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用)

2、拉取jar包流程

Maven可直接从宿主仓库下载构件,也可以从代理仓库下载构件,而代理仓库间接的从远程仓库下载并缓存构件,为了方便,Maven可以从仓库组下载构件,而仓库组并没有实际的内容(下图中用虚线表示,它会转向包含的宿主仓库或者代理仓库获得实际构件的内容)

3、创建仓库

进过上面的讲解,我们对仓库已经有了了解,接下来我们进行创建仓库,分为是代理仓库(proxy)宿主仓库(hosted)仓库组(group),点击主页上面的小螺丝然后在选择Repositories进入仓库管理列表,然后就可以开始创建我们的仓库啦,选择仓库类型的时候一定要选择maven2

a、proxy代理仓库

我们使用阿里的中央仓库

b、hosted宿主仓库

这里可以创建releasessnapshot类型的仓库,这里就演示一种

c、group仓库组

三、项目配置

前两章走完我们已经在Linux服务器部署好了nexus并且创建好了我们的仓库,接下来我们就来试着在项目中配置

1、创建一个Maven项目

为了演示,就随便创建个工具类玩,以下是目录结构

2、pom文件

这里为了演示我就配了release仓库,实际上应该同时要配置snapshot仓库,maven会判断版本后面是否带了-SNAPSHOT,如果带了就发布到snapshots仓库,否则发布到release仓库

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.gjing</groupId>
 <artifactId>demo</artifactId>
 <version>1.0</version>
 <name>demo</name>
 <description>Demo project for Spring Boot</description>

 <properties>
  <java.version>1.8</java.version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <distributionManagement>
  <repository>
   <!--ID可以随便写,但是要与maven的setting文件中一致-->
   <id>releases</id>
   <!--指向仓库类型为hosted(宿主仓库)的储存类型为Release的仓库---->
   <url>http://你nexus仓库的IP:8081/repository/me-release/</url>
  </repository>
 </distributionManagement>

 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
     <source>1.8</source>
     <target>1.8</target>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.8.2</version>
   </plugin>
  </plugins>
 </build>
</project>

3、maven配置setting文件

id一定要和项目pom文件中的一致

 <servers>
 <server>
  <id>releases</id><!--对应项目pom文件中设置的-->
  <username>admin</username>
  <password>admin123</password>
 </server>
 </servers>

四、发布

如果使用的是IDEA开发工具可以直接在右边工具栏Maven工具点击deploy,也可以直接在命令行进入本项目根目录进行mvn deploy

这时nexus私服上也会出现我们的jar包

到此就发布成功啦

五、使用

让maven项目使用nexus作为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库;另一种是通过修改maven的配置文件settings.xml进行更改,让所有项目都使用nexus仓库。我们这里采取第二种,只需要setting.xml就可以了。还有就是拉取jar的私服仓库地址只要写我们的仓库组就ok,因为在创建这个组的时候,里面已经包含了其它三个仓库

1、settings.xml文件

在maven的settings文件中找到mirrors,加上我们组仓库的mirror,url填写我们创建的组地址即可,id、name可以随便填写,mirrorOf可以和我写一样的

 <mirrors>
 <mirror>
  <id>mynexus</id>
  <name>myself nexus repository</name>
  <url>http://xxx:8081/repository/me-group/</url>
  <mirrorOf>central</mirrorOf>
 </mirror>
 </mirrors>

2、验证

只需要在其他项目中pom文件引入即可,成功引入且在项目中可以正常使用我们刚刚定义的工具类

到此整个流程就结束啦,如果有任何问题可以在评论区告诉我哦!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈android nexus私服的使用

    先唠叨几句啊,由于公司私服已经搭好了我就不费那劲琢磨搭建私服的事了,直接开撸上传lib.下图是我放组件库的地方,本来想一个module拉出一个项目来维护,后来想想实在是麻烦,同时维护多个库就要down多个库下来,于是就统一管理了.当然统一维护module多了自然会影响编译的速度,可以在settings.gradle 里将不编译的module注释掉就可以了.现在就有图片选择.表情.输入框.星星.视频录制.裁切等七七八八个库,至于后面组件库多了可能会分类按类型拉出几个项目来管理,要不版本控制也是个麻

  • 如何使用nexus在局域网内搭建maven私服及idea的使用

    使用Maven进行项目的声明周期管理,方便对项目依赖和插件进行管理,同时便于项目的统一管理,提升项目开发效率.但是实际工作中会有以下问题: 1  因为安全考虑,有些公司不给开发人员提供外网.因此不能使用maven访问远程的仓库地址. 2  大家同时上网,导致网速比较慢,maven下载构件效率比较低. 3  由于版权的问题,有些第三方jar包无法从远程仓库下载. 4  有些jar包是公司内部使用的,自然也无法从远程maven仓库下载. 怎么办呢? 使用Nexus搭建私服 所谓私服,是一种特殊的远程

  • Maven nexus 安装nexus私服出现的问题和解决办法

    1. 在win10中安装nexus时提示:wrapper | OpenSCManager failed - 拒绝访问. (0x5) 主要是没有权限.需要以管理员的身份运行 如果你是直接点击 start-nexus.bat 来启动服务的话: 如果你是 通过 cmd窗口来执行的话,需要设置命令提示符窗口的权限来执行 2. wrapper | The nexus-webapp service is not installed - The specified service does not exist

  • Maven入门之使用Nexus搭建Maven私服及上传下载jar包

    一. 私服搭建及配置 1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载. 我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus.这里我们使用 Sonatype Nexus. 2 . 安装Nexus 2 .

  • 详解Maven私服Nexus的安装与使用

    本文介绍了详解Maven私服Nexus的安装与使用,分享给大家,具体如下: 1.安装 1.1 安装docker并加速 yum update && yum install docker sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://y7u9p3i0.mirror.aliyuncs.com"

  • 使用Nexus添加jar包到私服里的方法步骤

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库. 1.首先确定我们的环境安装好maven,jdk等必须的环境 2.这些都准备好之后,去下载最新版本的nexus    下载地址:http://www.sonatype.org/nexus/go 我本地安装的是 ne

  • Linux搭建自己Nexus私服的实现方法

    本文介绍如何在Linux服务器通过Docker搭建Nexus私服 一.安装Nexus 1.创建存放数据的位置 # 进入个目录,这个你们随便 cd /srv # 创建个文件夹 mkdir nexus-data # 赋予权限,不然启动会报错,无操作权限 chmod 777 nexus-data 2.启动 执行以下命令即可,会自动拉取镜像并启动 docker run -d -p 8081:8081 --name nexus -v /srv/nexus-data:/nexus-data --restar

  • Linux搭建C++开发调试环境的方法步骤

    安装g++ Linux编译C++程序必须安装g++编译器.这里使用yum方式安装.首先切换到root账号,su - root 然后输入密码. 执行yum install gcc-c++(注意不是yum install g++),报错. 报错是因为yum需要配置正确的服务器地址,服务器是提供yum安装包的,也被称作yum源.配置yum源的配置文件在/etc/yum.repos.d/目录下,可以看到系统自带了两个文件. cat 文件名称,会打印文件全部内容.可以看到两个文件要么没配置,要么地址是无法

  • Maven发布项目 (jar包) 到Nexus私服中的操作

    1 需求说明 开发完项目后, 将项目版本发布到Nexus私服中. 2 实现步骤 2.1 Maven服务的setting.xml文件 (1) 如果本机安装了Maven服务, 可在${MAVEN_HOME}/conf/setting.xml中指定私服相关的配置: <!-- 在servers标签下配置server, 包括: 私服的用户名和密码, 在deploy项目时需要用到 --> <server> <id>releases</id> <username&g

  • 使用Nexus搭建Maven私服教程的方法步骤

    目录 一.基本介绍(Nexus(maven私服)) 1,如果没有搭建私服会有什么问题? 2,搭建私服的优点 3,Nexus 介绍 二.Nexus 服务的安装(推荐第二种:使用docker方式安装) 1,使用二进制发行包安装 2,使用 Docker 镜像进行安装(推荐) 三.Nexus 服务的配置 附一:Maven 配置使用私服(下载依赖) 1,基本说明 2,通过 setting.xml 文件配置 3,通过 pom.xml 文件配置 附二:Maven 配置使用私服(下载插件) 附三:Maven 配

  • Nexus私服的搭建原理及教程解析

    一.为什么要构建Nexus私服? 公司所有开发成员没有外网,通过局域网连接 nexus 私服,由私服连接外网. 把项目发布到私服.其他人员从私服下载. 二.使用私服之后架构图 三.搭建 Nexus 3.1 nexus-2.10-1bundle.zip 解压到任意非中文目录中 3.2进入 nexus-2.10-1\bin\jsw\indows-x86-4(对应自己系统) 以windows64系统为例 instal-nexus.bat 安装服务 star-nexus.bat 开启服务 stop-ne

  • linux 搭建svn服务器的方法步骤

    一:安装svn yum install -y subversion 二:创建仓库 1:创建仓库目录 mkdir -p /var/project/test 2:创建仓库 svnadmin create /var/project/test 创建成功后,在/var/project/test目录下如下目录: drwxr-xr-x. 2 root root 51 1月 30 13:26 conf drwxr-sr-x. 6 root root 4096 1月 30 13:26 db -r--r--r--.

  • 定时清理docker私服镜像的方法

    使用CI构建docker镜像进行发布极大促进了大家的版本发布效率,于是镜像仓库也就急速膨胀.为了缓解磁盘压力,我们需要设置一些清理策略. 对于不同docker镜像的清理策略应该是不同的.比如,默认保留最近5个版本的镜像,对于工具类的image保留全部,对于业务类的image保留一个月之类的. 简单保留5个image的方式如下: 下载 https://github.com/mlabouardy/nexus-cli , 使用cli来执行删除. 下载 wget https://s3.eu-west-2

  • 搭建公司私有MAVEN仓库的方法

    使用工具及环境: cent os 7; jdk 1.8; nexus-3.9.0-01-unix.tar.gz 安装: 首先,下载安装包:https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.9.0-01-unix.tar.gz 然后设置: vim etc/profile  在该文件最下方 加入: export RUN_AS_USER=root 其次,上传至服务器:/root/nexus-3.9.0下,执行:tar -zx

  • linux下安装php扩展memcache的方法

    memcache 的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减轻后端数据库的读写压力. 实验环境:centos 6.6 x86_64 LAMP环境搭建完毕:php版本5.6.8.apache版本2.4.12 1.在安装memcached之前需要安装libevent支持: # wget http://syslab.comsenz.com/downloads/linux/libevent-1.4.12-stable.tar

随机推荐