扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
🍁个人主页:微枫Micromaple
西安ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!✨本期专栏:《0到1项目搭建》欢迎订阅学习~
📌源码获取:GitCode、GitHub、码云Gitee 持续更新中,别忘了
star
喔~
目录在企业开发过程中,就比如说我们Java程序员,一般都是使用Spring或者是SpringBoot项目进行开发的,基本上都是基于Maven或者是Gradle构建的项目,如果说我们使用的Maven仓库是中央仓库的话,在企业内部协同开发的时候,会带来诸多不便。例如,当我们需要协同开发时,难免会对Jar包进行管理,不可能将我们的Jar包上传至中央仓库去,所以我们需要搭建属于内部的Maven仓库。Maven游戏仓库也有者诸多好处。本文详细讲述了 Maven游戏的搭建、Jar包部署以及SpringBoot配置。
Nexus
是一个存储库管理器,极大地简化了内部仓库的维护和外部仓库的访问。
有非常简单便捷的用户操作界面,方便对Nexus操作及管理。
在 Nexus 3.0 版本后,增加了对 Docker、NetGet、npm、Bower的支持。
二、为什么要使用Maven游戏仓库大家可能会有一个疑问,为啥要搭建Maven游戏呢?使用官方的Maven仓库不就可以吗?而且国内也有镜像加速地址,比如阿里等。而我们去搭建一个Maven游戏,需要在服务器单独进行搭建,还要进行维护。
针对这些问题,下面是使用Maven游戏的好处:
托管内部存储库: 可以共享内部依赖项,以方便将依赖项安装在每个开发人员的本地存储库中。
加速Maven构建: 当在 Maven 中运行多模块项目时,如果项目依赖于几个 SNAPSHOT,或者没有指定插件版本,Maven 可能必须向远程存储库发出数十到数百个请求。安装 Nexus 的本地实例后将构建时间大大的缩减了。
节省带宽: 如果没有 Maven 游戏,开发人员会浪费带宽一遍又一遍的从中央仓库下载相同的文件。使用 Nexus 来保留本地缓存将节省大量带宽。
控制和审计: 可以有效的控制开发团队将使用哪些依赖项。
可上传部署第三方Jar: 可以方便的上传第三方Jar包,并对其进行管理。
可预测性和稳定性: 依靠中央仓库进行日常运营也意味着依赖于互联网连接,如果有 Nexus ,则可以确保即使失去互联网连接,构建工作也可以继续进行。
这里使用docker来搭建Nexus。
1)、创建文件夹
mkdir -p /usr/local/docker/nexus
2)、创建docker-compose文件
vi /usr/local/docker/nexus/docker-compose.yml
docker-compose.yml
内容如下:
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
privileged: true
ports:
- 8081:8081
volumes:
- ./data:/nexus-data
3)、启动
启动命令
docker-compose up -d
如果遇到文件夹权限问题,使用命令更改文件夹权限
chmod -R 777 data
,然后在重新启动
4)、访问
启动完成后,浏览器访问http://IP:8081/
,效果如下:
5)、登录
登录Nexus,点击右上角Sign in
,第一次登录会提示admin
的密码在哪,根据提示去相关目录查看。docker-compose中映射nexus-data
目录为/usr/local/docker/nexus/data
目录,所以我们在data
目录去找admin.password
文件即可看到密码了。
查看密码
$ cat admin.password
1cf97ae1-270f-47e5-8c83-f5af04af34af
四、SpringBoot整合登录后会提示设置新的密码,设置一个记得住的密码即可。
以my-project
项目为例。
有一个统一的依赖管理模块my-project-dependencies
,在pom.xml
中增加部署服务器的 Maven 节点内容以及仓库地址,内容如下:
nexus-releases Nexus Release Repository http://192.168.110.158:8081/repository/maven-releases/ nexus-snapshots Nexus Snapshot Repository http://192.168.110.158:8081/repository/maven-snapshots/ nexus Nexus Repository http://192.168.110.158:8081/repository/maven-public/ true true aliyun-repos Aliyun Repository http://maven.aliyun.com/nexus/content/groups/public true false sonatype-repos Sonatype Repository https://oss.sonatype.org/content/groups/public true false sonatype-repos-s Sonatype Repository https://oss.sonatype.org/content/repositories/snapshots false true spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false nexus Nexus Plugin Repository http://192.168.110.158:8081/repository/maven-public/ true true aliyun-repos Aliyun Repository http://maven.aliyun.com/nexus/content/groups/public true false
4.2、测试部署将IP地址更改为自己的就可以了
使用dos窗口进入my-project-dependencies
目录下,执行部署命令
mvn deploy
此时出现失败,关键信息Return code is: 401, ReasonPhrase: Unauthorized.
,错误问题是未授权
我们打开我们配置的Maven的settings.xml
,在servers
节点增加如下配置
nexus-releases admin 123456 nexus-snapshots admin 123456
配置好这些后,先将原先的命令窗口关闭,打开一个新的,在执行一次部署命令
mvn deploy
部署成功,接着我们打开Nexus端查看部署上来的项目
在 Maven 游戏中也可以看到,大功告成~
五、上传部署Jar包在开发过程中,我们可能会单独的对Jar进行管理,而我们手中又只有一个Jar文件。这时,我们需要使用到Nexus的上传功能
1)、点击Upload
->选择需要上传的仓库
2)、上传Jar包,填写表单信息
3)、上传成功
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流