Linux搭建本身Nexus私服

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

1、安装Nexus

一、建立存放数据的位置

# 进入个目录,这个大家随便
cd /srv
# 建立个文件夹
mkdir nexus-data
# 赋予权限,否则启动会报错,无操做权限
chmod 777 nexus-data

二、启动

执行如下命令便可,会自动拉取镜像并启动docker

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便可访问
index
点击右上角Sign in进行登陆,帐号为admin,密码须要去镜像中查看apache

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

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

2、Nexus仓库

一、仓库类型

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

a、仓库

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

b、类型

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

二、拉取jar包流程

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

三、建立仓库

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

a、proxy代理仓库

咱们使用阿里的中央仓库
proxy工具

b、hosted宿主仓库

这里能够建立releasessnapshot类型的仓库,这里就演示一种
hosted开发工具

c、group仓库组

group

3、项目配置

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

一、建立一个Maven项目

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

二、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>

三、maven配置setting文件

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

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

4、发布

若是使用的是IDEA开发工具能够直接在右边工具栏Maven工具点击deploy,也能够直接在命令行进入本项目根目录进行mvn deploy
deploy
这时nexus私服上也会出现咱们的jar包
remote
到此就发布成功啦

5、使用

让maven项目使用nexus做为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库;另外一种是经过修改maven的配置文件settings.xml进行更改,让全部项目都使用nexus仓库。咱们这里采起第二种,只须要setting.xml就能够了。还有就是拉取jar的私服仓库地址只要写咱们的仓库组就ok,由于在建立这个组的时候,里面已经包含了其它三个仓库

一、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>

二、验证

只须要在其余项目中pom文件引入便可,成功引入且在项目中能够正常使用咱们刚刚定义的工具类
test


到此整个流程就结束啦,若是有任何问题能够在评论区告诉我哦!!!

相关文章
相关标签/搜索