😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: Docker部署Nexus通过Maven推送及拉取代码
⏱️ @ 创作时间: 2023年1月16日
目录
- 1、拉取镜像
- 2、启动镜像
- 3、登录系统
- 4、配置中央仓库
- 5、用户管理
- 6、创建仓库
- 7、代码推送
- 8、引入私有仓库包
1、拉取镜像
-
搭建版本:3.45.0
-
参考地址:https://hub.docker.com/r/sonatype/nexus3/tags
-
创建工作目录
# 挂载目录
mkdir /home/docker/nexus# 授权
chmod 777 -R /home/docker/nexus
- 拉取镜像
# 拉取镜像
docker pull sonatype/nexus3:3.45.0
2、启动镜像
- 挂载启动Nexus
docker run -d --restart=always \
-p 8081:8081 \
-v /home/docker/nexus:/nexus-data \
--name=nexus3 \
sonatype/nexus3:3.45.0
- 8081: nexus3 默认服务端口
-
测试访问
测试地址:http://192.168.80.121:9091/
3、登录系统
nexus
的默认用户名为admin
默认密码位置在/home/nexus/sonatype-work/nexus3/admin.password
中,使用时直接复制即可,密码为一个uuid
;
cat /home/nexus/sonatype-work/nexus3/admin.password
在首次登录系统后,会进行一次密码修改
4、配置中央仓库
仓库地址:https://mirrors.huaweicloud.com/repository/maven/
5、用户管理
1、添加角色
2、创建用户
6、创建仓库
1、创建maven2(hosted)
类型仓库
创建仓库需要在登录后才能进行
点击
Create repository
,然后选择类型为maven2(hosted)
2、设置仓库属性
Maven 仓库分为两种:
Snapshot 快照仓库
和Release 发行仓库
。Snapshot 快照仓库用于保存开发过程中的不稳定 SNAPSHOT 版本,Release 发行仓库则用来保存稳定的 RELEASE 版本。
仓库名称设置为
lhz-release
(任意);将
Version policy
选择为Release
;将
Deployment policy
选择Allow redeploy
,允许部署和更新私服上的组件。
3、添加到仓库组
7、代码推送
1、POM文件自动推送
在本地Maven
的setting.xml
文件中,在<servers>
标签中添加Neuxs私服的配置,如下
<servers>
<!--nexus服务器--><servers> <server><!--任意值--><id>lhz-nexus</id><!--私服的访问账户--><username>admin</username> <!--私服的访问密码--><password>123321</password> </server>
</servers>
在需要推送到Nexus仓库代码的POM.XML中,配置推送的仓库及地址
<!--dependencies下面-->
<distributionManagement><!--推送到release版本的仓库--><repository><!-- 需要和conf文件下pom文件server标签中id保持一致 --><id>lhz-nexus</id><name>nexus release</name><!--推送的仓库地址--><url>http://192.168.80.121:9090/repository/lhz-release/</url></repository>
</distributionManagement>
执行推送:
# maven推送命令
mvn clean deploy# 推送项目中的部分pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><groupId>com.lhz.utils</groupId><artifactId>template-common-utils</artifactId><packaging>jar</packaging><version>2.0</version><modelVersion>4.0.0</modelVersion><properties><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.source>1.8</maven.compiler.source></properties><dependencies><dependency><groupId>eu.bitwalker</groupId><artifactId>UserAgentUtils</artifactId><version>1.21</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.22</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.15</version></dependency>............<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.8.1</version></dependency></dependencies><!--dependencies下面--><distributionManagement><!--推送到release版本的仓库--><repository><!-- 需要和conf文件下pom文件server标签中id保持一致 --><id>lhz-nexus</id><name>nexus release</name><url>http://192.168.80.121:9090/repository/lhz-release/</url></repository></distributionManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>
2、手动上传jar包到nexus
8、引入私有仓库包
配置如下:
<!--maven配置添加私服的镜像地址,settings.xml 文件中-->
<mirrors><!--如果http不被允许的话,将屏蔽下面的`maven-default-http-blocker`配置--><mirror><id>maven-default-http-blocker</id><mirrorOf>external:http:*</mirrorOf><name>Pseudo repository to mirror external repositories initially using HTTP.</name><url>http://0.0.0.0/</url><blocked>true</blocked></mirror><!--添加私服镜像--><mirror><id>lhz-nexus</id><!--任意值--><name>nexus repository</name> <mirrorOf>*</mirrorOf> <url>http://192.168.80.121:9090/repository/maven-public/</url> </mirror>
</mirrors><!--需要拉取jar包的项目中,pom.xml 文件中--><repositories><repository><!--与mirror配置的一致--><id>lhz-nexus</id><name>Nexus Reposotory</name><url>http://192.168.80.121:9090/repository/maven-public/</url> <releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>