本机环境CentOS7,用户为roothtml
下载脚本到工做目录 curl -fsSL https://get.docker.com -o get-docker.sh 执行脚本 sudo sh get-docker.sh
执行完会自动退出shell,须要从新登陆。git
安装docker-compose的可执行命令到/usr/local/bin sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 增长可执行权限 sudo chmod +x /usr/local/bin/docker-compose
不出意外,本地网络是下载不动的...
github
能够尝试 Github手动下载,或者开加速器。下载完成后copy到/usr/local/bin,而后增长可执行权限docker
service docker start 或 systemctl start docker
docker search nexus
通常安装star
数最多的版本,目前最新是sonatype/nexus3
shell
docker pull sonatype/nexus3
docker run -p 8081:8081 --name nexus sonatype/nexus3
若是有容器和下面要建立的容器同名的话,先删除 docker rm <container_name> 指定虚拟机与容器共享的文件夹 mkdir /usr/local/docker/nexus/nexus-data 启动容器 docker run -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data snoatype/nexus3
chmod 777 /usr/local/docker/nexus/nexus-data
mkdir /usr/local/docker cd /usr/local/docker vi docker-compose.yml
version: "3.7" services: nexus: restart: "no" image: sonatype/nexus3 container_name: nexus ports: - 8081:8081 volumes: - /usr/local/docker/nexus/nexus-data:/nexus-data
version : 指定docker-compose语法版本,版本不一样,支持的docker也不一样浏览器
restart网络
services : 多种服务的根节点less
nexus : 服务名随意起,表明要建立的服务curl
restart : 容器的重启策略,有no、always、on-failure、
unless-stopped四种可选值。maven
image : 容器依据的镜像
container_name : 容器名
ports : 端口
volumes : 数据卷
注意:yml文件缩进必须用空格
http://<host address>:8081/
/usr/local/docker/nexus/nexus-data
中admin
开头的文件中,将其拷贝输入便可。<servers> <server> <id>maven-releases</id> <username>admin</username> <password>112233</password> </server> <server> <id>maven-snapshots</id> <username>admin</username> <password>112233</password> </server> </servers>
id
: 为nexus的仓库名称,
username
: nexus用户名
password
: nexus密码
增长发布管理节点
<distributionManagement> <snapshotRepository> <id>maven-snapshots</id> <name>maven-snapshots-repository</name> <url>http://192.168.172.141:8081/repository/maven-snapshots/</url> </snapshotRepository> <repository> <id>maven-releases</id> <name>maven-releases-repository</name> <url>http://192.168.172.141:8081/repository/maven-releases/</url> </repository> </distributionManagement>
snapshotRepository
: 快照仓库
repository
: 发行仓库
id
: 与上面的server的id一致
name
: 随便
url
: 仓库地址,从nexus中能够找到
maven会根据<version/>
中是否含有SANPSHOT
来选择是发布到快照仓库,仍是发行版仓库
项目打包 mvn clean package -Dmaven.test.skip=true 项目发布 mvn deploy
运行完即可在nexus中看到本身的项目了。
有时项目开发时,一些maven依赖下载不下来,一直报错。这时,能够手动下载jar包,将其安装到nexus私服,再从nexus解决依赖问题。下面以安装kaptcha
为例:
mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third
DgroupId
: jar包的groupId
Dversion
: jar包的版本
Dfile
: jar包所在位置
Durl
: 仓库地址
DrepositoryId
: 仓库名
这里新建了名为third
的第三方仓库,注意要在setting.xml
增长一个server
节点,配置用户名和密码。同时要将third
仓库加到maven-public
组中,由于第十步要依赖的是maven-public
组。将 third
加入maven-pulic
组后,只要依赖maven-public
,即可取到third
中的jar包。
在pom.xml
中增长以下仓库配置:
<repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.172.141: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://192.168.172.141:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories>
url
节点填写的都是maven-public
组的url,而maven-releases
,maven-snapshots
,third
都包含在maven-public
中,因此能取到三个仓库的内容。