基于Docker搭建maven私服
备注:首先在linux环境安装Java环境和Docker,私服需要的服务器性能和硬盘存储要高一点,内存不足可能到时启动失败,这里以4核8GLinux服务器做演示
一、部署maven私服
1、在docker容器上下载nexus镜像:
docker pull sonatype/nexus3

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

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


默认登陆账号用户名为admin,密码需要进入容器查看:
docker exec -it nexus /bin/bash
bash-4.4$ cat /opt/sonatype/sonatype-work/nexus3/admin.password

输入默认的账号密码之后成功登录之后,Nexus 就会强制要求修改 admin 的密码,并且设置基本访问权限,完成之后就正式进入了 Nexus 私服后台。
二、创建私服仓库
1、修改中央仓库地址为阿里云:
登录maven私服,点击设置,选择Repositories,可以看到所有的仓库。

其中maven-central为默认中央仓库,我们需要把仓库地址修改为阿里云仓库地址http://maven.aliyun.com/nexus/content/groups/public

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

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

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

三、发布jar包到私服
1、拷贝public仓库地址

配置maven settings文件的服务器用户名密码
<servers>
<server>
<id>myrepo</id>
<username>mynexus</username>
<password>123456</password>
</server>
</servers>
修改项目的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>
上传项目jar包到maven私服
打开终端,输入mvn deploy,即可将我们的jar包发布到maven私服上

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

导入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私服便结束了