Docker专题系列之九:docker搭建和配置maven私服Nexus

一、DOCKER搭建MAVEN私服

1.拉取镜像

docker pull sonatype/nexus3

2.启动镜像

docker run -d -p 8081:8081 --name nexus sonatype/nexus3

3.配置认证信息

在apache-maven-3.5.3\conf 下的settings.xml 进行配置

找到 标签

    <server>
      <id>nexus-releasesid>
      <username>adminusername>
      <password>12345678password>
    server>
    <server>
      <id>nexus-snapshotsid>
      <username>adminusername>
      <password>12345678password>
    server>

在pom.xml中配置仓库地址

 <distributionManagement>
    <repository>
        <id>nexus-releasesid>
        <name>Nexus Releases Repositoryname>
        <url>http://192.168.33.188:8081/repository/maven-releasesurl>
    repository>
    <snapshotRepository>
        <id>nexus-snapshotsid>
        <name>Nexus Snapshots Repositoryname>
        <url>http://192.168.33.188:8081/repository/maven-snapshotsurl>
    snapshotRepository>
distributionManagement>

在子项目下配置


    <repositories>
        <repository>
            <id>nexusid>
            <name>Nexus Releases Repositoryname>
            <url>http://192.168.33.9:8081/repository/maven-public/url>
            <releases><enabled>trueenabled>releases>
            <snapshots><enabled>trueenabled>snapshots>
        repository>
    repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexusid>
            <name>Nexus Snapshots Repositoryname>
            <url>http://192.168.33.9:8081/repository/maven-public/url>
            <releases><enabled>trueenabled>releases>
            <snapshots><enabled>trueenabled>snapshots>
        pluginRepository>
    pluginRepositories>

二、配置MAVEN私服

Nexus

实际企业开发过程中所有依赖都会走私服下载,需要在 Nexus 上配置相对应的 Maven 代理

创建代理仓库

目前咱们只需要配置三个必须的代理仓库(分别为 aliyun-nexusspring-milestonespring-snapshot),如果你有其它的代理仓库配置流程同下

  • 登录 Nexus 服务器
  • 点击 设置按钮 -> Repository -> Repositories

Docker专题系列之九:docker搭建和配置maven私服Nexus_第1张图片

  • 点击 Create Repository -> 选择 maven2 (proxy) 创建 Maven 代理仓库

Docker专题系列之九:docker搭建和配置maven私服Nexus_第2张图片

  • 配置阿里云仓库代理(版本策略为Release)
    • Name: aliyun-nexus
    • Version pollcy: Release
    • Remote storate: http://maven.aliyun.com/nexus/content/groups/public/

Docker专题系列之九:docker搭建和配置maven私服Nexus_第3张图片

  • 配置 Spring 仓库代理(版本策略为Release)
    • Name: spring-milestone
    • Version pollcy: Release
    • Remote storate: https://repo.spring.io/milestone

Docker专题系列之九:docker搭建和配置maven私服Nexus_第4张图片

  • 配置 Spring 仓库代理(版本策略为Snapshot)
    • Name: spring-snapshot
    • Version pollcy: Snapshot
    • Remote storate: https://repo.spring.io/snapshot

Docker专题系列之九:docker搭建和配置maven私服Nexus_第5张图片

  • 三个代理仓库创建成功后如下图所示

Docker专题系列之九:docker搭建和配置maven私服Nexus_第6张图片

配置代理仓库

三个代理仓库创建完成后还无法直接使用,需要进一步配置

  • 点击 设置按钮 -> Repository -> Repositories
  • 选择 maven-public,修改 Group如下图所示(注意先后顺序)

Docker专题系列之九:docker搭建和配置maven私服Nexus_第7张图片

配置计划任务

实际开发过程中可能每天都会产生大量的快照版本,每个快照都会占用相应的空间,历史快照版本就没有什么意义了应该定时清理以释放多占用的空间资源,我们可以通过 Tasks 计划任务选项定期清理旧的快照版本。

  • 点击>设置按钮>System>Tasks
    - **Task name:** `Delete SNAPSHOT`
    - **Repository:** `(All Repositories)`
    - **Minimum snapshot count:** `1`
    - **Snapshot retention (days):** `0`
    - **Task frequency:** `Manual`
    
    

Docker专题系列之九:docker搭建和配置maven私服Nexus_第8张图片

Maven

Nexus 配置完成后还需要配置 Maven,如果第一次启动 Nexus 时选择了 禁止匿名访问 (修改密码之后的操作)拉取依赖时是需要权限验证的还包括部署等其它配置。

配置服务认证

  • 修改 {你的 Maven 目录}/conf/settings.xml 配置文件

  • 修改

    
    

    元素

    • id: 唯一标识(POM 和 mirror 元素需要与之匹配
    • username: Nexus 登录账号
    • password: Nexus 登录密码
<servers>
    <server>
        <id>nexus-publicid>
        <username>adminusername>
        <password>12345678password>
    server>
    <server>
        <id>nexus-releasesid>
        <username>adminusername>
        <password>12345678password>
    server>
    <server>
        <id>nexus-snapshotsid>
        <username>adminusername>
        <password>12345678password>
    server>
servers>

配置镜像仓库

  • 修改

    
    

    元素

    • id: 需要与 server 元素中的 id 匹配
    • mirrorOf: 可以填入 central*(所有依赖均通过私服下载)
    • name: 随便
    • url: 仓库地址
<mirrors>
    <mirror>
        <id>nexus-publicid>
        <mirrorOf>*mirrorOf>
        <name>Nexus Publicname>
        <url>http://nexus.funtl.com/repository/maven-public/url>
    mirror>
mirrors>

你可能感兴趣的:(docker,maven,docker,java)