---恢复内容开始---
使用Docker搭建Maven私服
前言
本文主要介绍,使用Docker创建一个nexus私服,然后编写一个Library,上传到私服,然后使用demo工程依赖。
本文不对Maven、Nexus、私服等等相关名词以及为什么要用它们进行解释,仅仅作为笔者的一次实践记录,有什么不对的欢迎评论。
适合的读者
适合读此篇文章的人最好符合以下条件:
对maven有一定的认识
想搭建maven私服但是没有经验
对Docker有一定的使用经验
环境
本文环境实施是在远程Linux主机上面跑Nexus,然后本地进行开发测试。具体如下
远程主机环境
系统:CentOs 7.X
OpenJDK:1.8.0_151
Maven 3.0.5
Docker 1.12.6
本地环境
系统:MacOs 10.12.6
OpenJDK 1.8.0_152
Maven 3.5.2
IntelliJ IDEA 2017.3.4
安装Nexus
在远程主机运行一下命令:
docker pull sonatype/nexus3
上面命令的意思是下载一个nexus3
的镜像
继续执行:
docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
上面命令是指使用nexus3镜像创建并启动一个容器,然后指定暴露8081端口到对应主机的8081端口
将容器内部/var/nexus-data挂载到主机/root/nexus-data目录。
如果没有任何问题的话,Nexus应该是搭建成功了。
此时在浏览器输入:http://ip:8081即可看到以下页面:(ip为远程主机的ip地址)
点击右上方的 Sign In
进行登录,初始账号密码为 admin/admin123
这个时候登录会报一个错误,初始密码虽然是admin123,但是你就是死活登不上去,
Incorrect username or password, or no permission to use the application.
maven私服登录的时候不能使用明文密码,要使用密文密码,
一般在你创建容器的目录下,登录窗口会有提示说你的密码文件在哪个位置,
我这里是 /root/nexus-data/admin.password ,但是我进到这个目录下,
发现并没有,于是我进到容器里面找,终于被我找到了。
docker exec -it ae0913c1c81c bash cd /nexus-data/ cat admin.password c481f097-4a88-4ad4-a742-0f2a12c0e2da
c481f097-4a88-4ad4-a742-0f2a12c0e2dabash-4.2$
一般会跟容器版本一起显示,截取前面部分就是你的maven私服密码,
至此,登录成功,登录成功后,会提示让你修改密码,并且勾选匿名访问。
Nexus
会帮我们创建了几个仓库:
可以看到默认情况下Nexus会帮我们创建了几个仓库,仔细观察红色框住的地方,里面有几种仓库的类型,解释如下:
proxy 远程仓库的代理,比如说nexus配置了一个central repository的proxy,当用户向这个proxy请求一个artifact的时候,会现在本地查找,如果找不到,则会从远程仓库下载,然后返回给用户。
hosted 宿主仓库,用户可以把自己的一些仓库deploy到这个仓库中
group 仓库组,是nexus特有的概念,目的是将多个仓库整合,对用户暴露统一的地址,这样就不需要配置多个仓库地址。
下面我们仔细看一下里面的一些仓库。点击maven-central仓库:
可以看到是一个proxy
类型的仓库,他代理的远程仓库地址是https://repo1.maven.org/maven2/
。
后退,在进入maven-public
查看:
可以看到这是一个group类型的仓库,里面包含了maven-releases/maven-snapshots/maven-central仓库,意思是我们只需要在本地添加这个仓库,则可以依赖到上述3个仓库中的库了。
准备工作
为了实现本地上传代码库,并且实现依赖的示例,这里创建一个新的仓库(也可以选用已经存在的仓库)和一个用户
创建仓库,点击Create repository,然后选择maven2(hosted)然后输入仓库名称(reason-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要).
选择好之后点击创建,
创建成功如下:
创建用户
点击左侧菜单栏的Users
菜单,然后点击Create local user
.我这里创建了一个用户,账号密码都是:jiangqiayun
---恢复内容结束---
原文:https://www.cnblogs.com/reasonzzy/p/11130117.html