一、为什么要搭建Nexus服务?

有时候我们在工作的时候会用到公司自己的jar包,这种时候,我们并不能通过像阿里的镜像仓库一样下载到需要用到的jar包,然通过手动导入jar包到我们本地的maven仓库只能解一时之需,当有很多人需要编辑同一个工程的时候,会有很多不必要的操作,因此,使用私服搭建maven仓库就显得尤为重要。

二、CentOS下安装Docker

使用yum安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

Docker安装Nexus3私服 docker启动nexus_Docker搭建Nexus


由于Docker分为CE(社区免费版)和EE(企业版),所以这里将介绍社区免费版本的安装方法。

如果你的机器中存在旧版本的Docker,只需要执行以下命令来移除旧版本的Docker即可:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

然后我们需要安装一些系统必要的工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

安装 Docker-ce:

sudo yum -y install docker-ce

启动 Docker 后台服务

sudo systemctl start docker

测试运行 hello-world

docker run hello-world

Docker安装Nexus3私服 docker启动nexus_Docker搭建Nexus_02


当出现上图的画面的时候就表示Docker安装成功了

三、使用Docker启动Nexus服务

使用Docker启动Nexus服务就非常简单了,只需要两行命令就可以了

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

然后确保我们的服务器关闭了8081防火墙限制,执行

curl http://localhost:8081

知道出现了如下提示,则表示,我们成功启动了Nexus服务

Docker安装Nexus3私服 docker启动nexus_docker_03


然后我们就可以在本地浏览器访问服务器即可了

Docker安装Nexus3私服 docker启动nexus_docker_04

四、配置用户权限

用户名: admin 默认密码: admin123

我们在登录后可以修改密码,然后配置匿名使用 NuGet API-Key Realm 才能访问即可,这样用户就必须使用用户名和密码才能访问我们私有的maven仓库了。

Docker安装Nexus3私服 docker启动nexus_Nexus私服_05

添加权限

Docker安装Nexus3私服 docker启动nexus_Docker安装Nexus3私服_06


我们在选择权限的时候可以只选择如下三个权限:

Docker安装Nexus3私服 docker启动nexus_Docker搭建Nexus_07

添加用户

Docker安装Nexus3私服 docker启动nexus_docker_08


Status 设置为 Active ,权限设置为我们刚才创建的权限即可

Docker安装Nexus3私服 docker启动nexus_Docker安装Nexus3私服_09

五、添加第三方仓库

选择 Repositories -> create repository -> maven2(hosted)即可

Docker安装Nexus3私服 docker启动nexus_docker_10


然后将这个第三方库归并到 maven-public 下管理

Docker安装Nexus3私服 docker启动nexus_Linux_11

六、配置maven-setting.xml

<servers>
		<server>
			<id>maven-public</id>
			<username>刚才配置的用户名</username>
			<password>刚才配置的密码</password>
		</server>
	</servers>
	<mirrors>
	</mirrors>
	<profiles>
		<profile>
			<id>JDK1.8</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<maven.compiler.source>1.8</maven.compiler.source>
				<maven.compiler.target>1.8</maven.compiler.target>
				<encoding>UTF-8</encoding>
			</properties>
		</profile>
		<profile>
			<id>center</id>
			<repositories>
				<repository>
					<id>maven-public</id>
					<name>maven-public</name>
					<url>http://服务器地址:8081/repository/maven-public/</url>
					<releases>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</releases>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
				</repository>
			</repositories>
		</profile>
		<profile>
			<id>edas.oss.repo</id>
			<repositories>
				<repository>
					<id>edas-oss-central</id>
					<name>taobao mirror central</name>
					<url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
					<releases>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</releases>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>edas-oss-plugin-central</id>
					<url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
					<releases>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</releases>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>
	<activeProfiles>
		<activeProfile>center</activeProfile>
		<activeProfile>edas.oss.repo</activeProfile>
	</activeProfiles>

这样我们就能让阿里的maven仓库镜像和我们的私服共同使用了