基于Docker搭建maven私服

备注:首先在linux环境安装Java环境和Docker,私服需要的服务器性能和硬盘存储要高一点,内存不足可能到时启动失败,这里以4核8GLinux服务器做演示

一、部署maven私服

1、在docker容器上下载nexus镜像:

docker pull sonatype/nexus3




docker安装mongodb怎么连接idea docker安装maven_maven


2、启动nexus容器:

将容器内部/var/nexus-data目录挂载到主机/root/nexus-data目录。

docker run -d -p 8081:8081 --name nexus -v /app/nexus/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
#如服务器配置较低可手动设置内存(启动会变慢)命令为:
docker run -d -p 8081:8081 --name nexus -v /app/nexus/nexus-data:/nexus-data --restart=always -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"  sonatype/nexus3


docker安装mongodb怎么连接idea docker安装maven_docker_02


3、登录nexus:

关闭防火墙(服务器还需开放对应端口安全组)后访问http:ip:8081 ,maven私服启动稍微比较慢,等待30s左右。

systemctl stop firewalld


docker安装mongodb怎么连接idea docker安装maven_docker_03


docker安装mongodb怎么连接idea docker安装maven_jar包_04


默认登陆账号用户名为admin,密码需要进入容器查看:

docker exec -it nexus /bin/bash

bash-4.4$ cat /opt/sonatype/sonatype-work/nexus3/admin.password


docker安装mongodb怎么连接idea docker安装maven_Powered by 金山文档_05


输入默认的账号密码之后成功登录之后,Nexus 就会强制要求修改 admin 的密码,并且设置基本访问权限,完成之后就正式进入了 Nexus 私服后台。

二、创建私服仓库

1、修改中央仓库地址为阿里云:

登录maven私服,点击设置,选择Repositories,可以看到所有的仓库。


docker安装mongodb怎么连接idea docker安装maven_docker_06


docker安装mongodb怎么连接idea docker安装maven_docker_07


2、创建仓库

创建一个仓库,类型为maven2(hosted)


docker安装mongodb怎么连接idea docker安装maven_jar包_08


策略policy为release,发布策略为Allow redeploy


docker安装mongodb怎么连接idea docker安装maven_Powered by 金山文档_09


  1. 创建用户

选择Users,创建用户,注意为用户选择相应的权限


docker安装mongodb怎么连接idea docker安装maven_maven_10


三、发布jar包到私服

1、拷贝public仓库地址


docker安装mongodb怎么连接idea docker安装maven_jar包_11


  1. 配置maven settings文件的服务器用户名密码
<servers>
      <server>  
        <id>myrepo</id>  
        <username>mynexus</username>  
        <password>123456</password>  
      </server>
 </servers>
  1. 修改项目的pom文件

把项目的版本SNAPSHOT修改为RELEASE, 并发布到指定maven私服地址

<!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
  <!--指定仓库地址 -->
    <distributionManagement>
        <repository>
            <id>myrepo</id>
            <name>Nexus Release Repository</name>
            <url>http://111.111.111.111:8081/repository/myrepo/</url>
        </repository>
    </distributionManagement>  

 
  <build>
    <plugins>
      <!--发布代码Jar插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.7</version>
      </plugin>
      <!--发布源码插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.2.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
</build>
  1. 上传项目jar包到maven私服

打开终端,输入mvn deploy,即可将我们的jar包发布到maven私服上


docker安装mongodb怎么连接idea docker安装maven_Powered by 金山文档_12


这时登录到私服上,可以看到上传的sms-sdk.jar包


docker安装mongodb怎么连接idea docker安装maven_maven_13


导入maven私服jar包

修改项目的pom文件,配置repositories为我们的maven私服地址即可

<repositories>
    <repository>
      <id>myrepo</id>
      <url>http://ip:8081/repository/myrepo/</url>
    </repository>
</repositories>
<dependency>
  <groupId>com.it</groupId>
  <artifactId>sms-sdk</artifactId>
  <version>1.0.0-RELEASE</version>
</dependency>

由此搭建maven私服便结束了