同步操作将从 JustryDeng/notebook 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
通常,我们开发项目并没有使用到虚线标识的那两部分,基本都是通过本机的Maven直接访问中央仓库,下载jar包到本地仓库。现在我们需要搭建中间虚线部分
安装教程见[CentOS 7安装docker、docker-compose](../docker-re/[04]CentOS 7安装docker、docker-compose.md)
查看运行的docker版本
docker -v
三种专门的Maven仓库管理软件可以用来帮助大家建立私服:
- Apache基金会的Archiva
- JFrog的Artifactory
- Sonatype的Nexus
Nexus是当前(2022-12-04)最流行的Maven仓库管理工具
# 查找镜像
docker search sonatype/nexus3
# 拉取镜像
docker pull sonatype/nexus3
# 创建目录以存储nexus数据
mkdir -p /opt/nexus/data
chmod 777 -R /opt/nexus/data
# 启动
docker run -d --name nexus3 -p 8081:8081 --restart always -v /opt/nexus/data:/nexus-data sonatype/nexus3
# 查看实时启动日志
docker logs -f nexus3
提示:访问前,请确保对应端口已开放
http//{ip}:{端口}
, 端口上面我们映射的是宿主机的8081端口
进行登录
admin密码可通过
cat /opt/nexus/data/admin.password
获取到
首次登录成功后,会让设置新密码
默认仓库说明
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar
maven-snapshots:私库快照版(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务
注:在本地maven的settings.xml或项目的pom.xml中配置的,就是maven-public
nexus仓库类型介绍
搭建好nexus后,nexus会默认自带几个创建好的仓库
如图所示,
提示:我们可以新建仓库,也可以直接修改nexus默认创建的几个仓库的配置。为方便,本人这里直接在nexus默认创建的几个仓库里面进行配置修改
注:常用的几个远程仓库
http://repository.jboss.com/maven2/
http://maven.aliyun.com/nexus/content/groups/public/
http://repo.maven.apache.org/maven2/
说明: 本地maven-snapshots可以采用默认的就行
部署策略设置允许重复部署(初次安装最好将Deployment policy设置为Allow redeploy,可避免一些问题)
部署策略说明:
- Allow redeploy:允许同一个版本号下重复部署(即:允许覆盖)
- Disable redeploy:不允许同一个版本号下重复提交代码(即:不允许覆盖)
- Read-Only:不允许提交任何版本
- Deploy by Replication Only:仅允许通过副本部署
注:原生的maven-releases库是Disable redeploy设置, maven-snapshots是Allow redeploy。
说明:
第一步:在maven的settins配置文件中,设置要使用的nexus私服仓库组地址
<mirrors>
<mirror>
<!-- id name自取名即可 -->
<id>jutsrydeng-maven-group</id>
<name>maven public or JustryDeng</name>
<!-- 设置nexus私服 仓库组地址 -->
<url>http://47.105.39.189:8081/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
第二步:随便打开个maven项目,执行mvn clean compile -U
参数-U:使代理仓库从远程中央仓库下载jar包到私服
第三步:去nexus检查私服中是否有相关jar包了
第一步:在maven的settins配置文件中,设置好nexus私服的登录账号、密码
<servers>
<server>
<!-- id可以随便取,只需要保证在pom.xml用到的时候,指定的id能对应上这里即可 -->
<id>jutsrydeng-aliyun-nexus</id>
<username>admin</username>
<password>dengshuai1994</password>
</server>
</servers>
第二步:在项目的pom.xml中,指定要部署到的私服仓库
<distributionManagement>
<repository>
<!-- 指定使用的凭证-->
<id>jutsrydeng-aliyun-nexus</id>
<!-- 私有正式库-->
<url>http://47.105.39.189:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<!-- 指定使用的凭证-->
<id>jutsrydeng-aliyun-nexus</id>
<!-- 私有快照库-->
<url>http://47.105.39.189:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
第三步,进行mvn deploy部署
提示:deploy时,会根据版本号后面是否带有
-SNAPSHOT
来决定,将包部署至正式库还是快照库,
- 带有
-SNAPSHOT
:部署至私有快照库- 不带有
-SNAPSHOT
:部署至私有正式库
将项目部署到私有正式库
将项目部署到私有快照库
去nexus私服私有正式库看一下是否部署上去了
去nexus私服私有快照库看一下是否部署上去了
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。