环境搭建|第一篇:Docker+Nexus搭建Maven私服

1.前言

一直想写一个系列,将平时工作中使用的环境、技术都写进同一系列中,目的主要使自己知识成体系,初步规划内容有《Docker+Nexus搭建Maven私服》、《Docker+Jenkins实现自动化部署》、《Springcloud系列》、《k8s服务编排》,后续可能还会有新的动西加入,涉及的动西比较多,时间会比较长,希望自己能坚持写完。


2.系统环境

1.环境搭建均使用Docker安装,故需要Docker相关知识,对于Docker不熟悉的童鞋可参见我的另一篇文章Docker学习笔记之基础知识
2.以下ip非腾讯云真实ip,大家根据自己实际情况填写,此处只是方便后续使用

环境版本
腾讯云系统centos7
ip192.168.1.100
Docker18.09.6
Nexus3.x
Maven3.6.1

3.安装Nexus

  • 说明

此安装步骤参照Docker Hub官网安装,大家也可移步官网查看sonatype/nexus for docker安装

  • docker安装Nexus
# 拉取镜像
$ docker pull sonatype/nexus3
# 创建本地挂载文件夹
$ mkdir -p /home/milk/docker/nexus-data
# 设置挂载文件夹权限
$ sudo chown -R 200:200 /home/milk/docker/nexus-data
# 启动sonatype/nexus3镜像
$ docker run -d -p 8081:8081 --name nexus -v /home/milk/docker/nexus-data:/nexus-data sonatype/nexus3
  • 安装完成

私服安装完成后,浏览器键入http://192.168.1.100:8081看到如下界面表示Nexus安装成功

在这里插入图片描述

4.私服设置

  • 登录设置密码

1.私服安装完成后都会有一个默认密码,需自己进入文件夹查询,以下提供两种方式查询
2.查看登录后会自动进入修改密码导航,自己根据需求进行修改即可

# 方法一:直接在挂载文件夹中查询
$ cd /home/milk/docker/nexus-data
$ cat admin.password
# 方法二:直接进入docker容器中的nexus-data
$ docker exec -it 窗口id /bin/bash
$ cat /nexus-data/admin.password
  • 设置

登录成功后,会看到如下页面,多了一个设置按钮,我们关注下图箭头处即可

在这里插入图片描述

  • Repositories设置

仓库分为如下几种,hosted,group,proxy三种
hosted:表示存放本地上传的jar包
proxy:表示存放第三方依赖
group:可以聚合多个仓库

在这里插入图片描述
1. 选择创建仓库-》maven2(proxy)

在这里插入图片描述
在这里插入图片描述
2.仓库设置

1.Name:可自定义
2.Proxy:可按需设置,必如阿里云仓库地址

在这里插入图片描述

  • Roles设置

1.创建角色

角色设置,默认有管理员和游客

在这里插入图片描述
2.设置权限

1.以下设置了developer角色
2.设置了该角色只能对releases和snapshots仓库进行操作权限

在这里插入图片描述

  • Users设置

选择创建用户,信息可以按需填写,下边可选择我们刚才配置的developer角色,配置即可

在这里插入图片描述

5.Maven设置

通过上述操作,私服已经搭建完成,现在我们需要设置项目中的pom.xml和settings.xml,只有完成如下设置,才能将我们配置的私服完全运用起来

5.1 settings.xml设置

  • localRepository: 表示本地仓库地址
<localRepository>/home/zycao/work/study-repo</localRepository>
  • service:表示登录私服仓库用户名和密码
  <servers>
    <server>
      <id>study-nexus</id>
      <username>user1</username>
      <password>user123456</password>
    </server>
   </servers>
  • mirror:配置镜像
    • id:唯一不重复即可
    • mirrorOf:配置仓库id,对应下边 repository中id,如果配置为*则表示代理所有依赖下载路径为mirror配置的url,还有许多关于设置相关的,大家可参考官方文档进行设置镜像设置
    • url:配置镜像地址,此处为配置的私有参库地址
<mirrors>
    <mirror>
      <id>nexus-myself</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus myself</name>
      <url>http://192.168.1.100 :8081/repository/maven-public/</url>
    </mirror>
  </mirrors>
  • profile:配置不同的仓库
    • id:在后续选择激活那个配置时用到,唯一不重复
    • repository:可配置多个,在此配置私有仓库地址
  <profiles>
    <profile>
      <!--配置激活文件名,唯一不重复-->
      <id>study-nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://192.168.1.100 :8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://192.168.1.100 .245:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  • activeProfiles:决定选择那一个配置生效,此处即为上边配置的profiles的id
  <activeProfiles>
    <activeProfile>study-nexus</activeProfile>
  </activeProfiles>
  • 完整settings.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>/home/milk/work/study-repo</localRepository>

<!--使用命令创建项目时,以对话模式 Default:true
<interactiveMode>true</interactiveMode>
-->

<!-- offline  决定maven是否离线模式运行,默认离线 Default: false
<offline>false</offline>
-->

<pluginGroups>
</pluginGroups>

  <!-- proxies 设置上网代理服务器-->
<proxies>
 </proxies>

  <!-- servers 配置私服用户名及密码 -->
  <servers>
    <server>
      <id>study-nexus</id>
      <username>user1</username>
      <password>user123456</password>
    </server>
   </servers>

  <!--<mirrors>-->
    <!--<mirror>-->
      <!--<id>nexus-myself</id>-->
      <!--<mirrorOf>*</mirrorOf>-->
      <!--<name>Nexus myself</name>-->
      <!--<url>http://192.168.1.100 :8081/repository/maven-public/</url>-->
    <!--</mirror>-->
  <!--</mirrors>-->


  <!--根据配置进行激活选择-->
  <profiles>
    <profile>
      <!--配置激活文件名,唯一不重复-->
      <id>study-nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://192.168.1.100 :8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://192.168.1.100 .245:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>study-nexus</activeProfile>
  </activeProfiles>
</settings>

5.2 pom.xml设置

创建一个项目,将其打为jar 包并上传至maven私服,创建项目自行创建,以下只对pom.xml进行配置说明

  • 设置发布仓库地址
 <!--设置发布仓库地址-->
  <distributionManagement>
    <!--releases版本发布至此仓库-->
    <repository>
      <id>study-nexus</id>
      <name>study-nexus</name>
      <url>http://192.168.1.100:8081/repository/maven-releases/</url>
    </repository>
    <!--snapshots版本发布至此版本-->
    <snapshotRepository>
      <id>study-nexus</id>
      <name>study-nexus</name>
      <url>http://192.168.1.100:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
  • 设置编译环境及插件
<!--设置构建插件及环境-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <!--构建设置-->
        <configuration>
          <encoding>utf-8</encoding>
          <!--java编译版本-->
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

6 执行发布及下载jar包操作

6.1 发布jar包

直接使用idea的deploy命令即可

在这里插入图片描述

下图中可看到刚才上传的jar报,坐标,说明一下,如果是SNAPSHOT版本,版本号为生成的时间戳,但可填写baseVersion

在这里插入图片描述

6.2 下载jar包

# 在需要依赖的项目pom.xml增加依赖坐标即可
<dependency>
  <groupId>com.study.nexus</groupId>
  <artifactId>nexus-api</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

7 .参考文档

http://maven.apache.org/guides/mini/index.html
https://hub.docker.com/r/sonatype/nexus3
https://help.sonatype.com/repomanager3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值