Docker配置Nexus Maven私服

Nexus是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。

通过Docker-compose安装

version: '3.1'
services: 
  nexus:
    restart: always
    image: sonatype/nexus3
    hostname: '192.168.0.107'
    container_name: nexus
    ports:
      - 8081:8081
    volumes:
      - /Users/xiaoming/nexus-data:/nexus-data

初始密码问题

新版本的Nexus初始密码是随机生成的,在数据卷中admin.password中查看,之后输入即可

Maven配置Nexus节点认证信息

<server>
  <id>nexus-releases</id>
  <username>admin</username>
  <password>123456</password>
</server>

<server>
  <id>nexus-snapshots</id>
  <username>admin</username>
  <password>123456</password>
</server>

Maven配置自动化部署

在项目pom.xml文件中设置如下:

<distributionManagement>  
  <repository>  
    <id>nexus-releases</id>  
    <name>Nexus Release Repository</name>  
    <url>http://ip:port/repository/maven-releases/</url>  
  </repository>  
  <snapshotRepository>  
    <id>nexus-snapshots</id>  
    <name>Nexus Snapshot Repository</name>  
    <url>http://ip:port/repository/maven-snapshots/</url>  
  </snapshotRepository>  
</distributionManagement> 

注意事项:

  • ID名称必须要与settings.xml中Servers配置的ID名称保持一致。
  • 项目版本号中有SNAPSHOT标识的,会发布到Nexus Snapshots Repository, 否则发布到Nexus Release Repository,并根据ID去匹配授权账号。

部署到仓库

mvn deploy

配置代理仓库

实现私服找不到上公服找并下载到私服。

<repositories>
    <repository>
        <id>nexus</id>
        <name>Nexus Repository</name>
        <url>http://127.0.0.1:8081/repository/maven-public/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>nexus</id>
        <name>Nexus Plugin Repository</name>
        <url>http://127.0.0.1:8081/repository/maven-public/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>