当前位置: 首页 > news >正文

maven私服

maven私服介绍

私服介绍

  1. 正式开发,不同的项目组开发不同的工程。maven-dao 工程开发完毕,发布到私服maven-service 从私服下载 dao

公司在自己的局域网内搭建自己的远程仓库服务器,称为私服, 私服服务器即是公司内部的 maven 远程仓库, 每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。

私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载。

Nexus介绍

Nexus Maven 仓库管理器, 通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库管理功能,构件搜索功能等。

maven私服实战

nexus安装

1解压资料中的nexus-2.12.0-01-bundle.zip文件,存放到一个不含中文的目录下。

查看conf文件下的nexus.properties配置文件,可以修改对应的配置

2 nexus的安装命令:使用管理员运行cmd命令窗口,切换目录nexus\nexus-2.12.0-01\bin目录下,执行nexus.bat install进行安装。执行nexus.bat start 启动服务 执行nexus.bat stop停止服务。

在bin目录下可以看到是有这个程序的,

命令窗口执行:

3 nexus的卸载命令:使用管理员运行cmd命令窗口,切换目录nexus\nexus-2.12.0-01\bin目录下,执行nexus.bat uninstall进行卸载

4 访问图形化界面:打开浏览器,输入http://localhost:端口号/nexus访问

5 点击log in,进行登录。用户名:admin 密码:admin123

nexus仓库类型

nexus提供了不同的仓库类型

1 hosted,宿主仓库, 部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分, Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库 ,3rd party是第三方的意思。一些断网的情况开发,maven无法链接远程库或中央库,通过u盘进行传递,在Apc上传到私服的3rd party处。
2 proxy,代理仓库, 用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私服自动去中央仓库下载 jar 包或者插件。
3 group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓库组。Group仓库组也是可以自己进行定制的。

4 virtual(虚拟):兼容 Maven1 版本的 jar 或者插件

 测试

将项目发布到私服

在settings.xml配置文件配置私服的镜像文件

<mirror><!-- id名称 --><id>nexusmaven</id><!-- 表示拦截所有的请求,都重定向到私服,从私服下载jar包,私服没有再去中央仓库下载 --><mirrorOf>*</mirrorOf>  <name>nexus maven</name><!-- 私服的组地址 --><url>http://localhost:8079/nexus/content/groups/public/</url>      </mirror>

 删掉本地库的一个jar包比如junit4.9

打开一个使用junit4.9的idea文件在maven视图里刷新自动从外部库下载junit4.9,同时会在私服里拷贝,

 

还有一种方式,可以配置仓库的方式,可以修改自己项目的pom配置文件,添加仓库的配置。

 (不推荐)

<repositories><repository><id>nexus</id><name>nexusmaven</name><url>http://localhost:8079/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository>
</repositories>
<pluginRepositories><pluginRepository><id>public</id><url>http://localhost:8079/nexus/content/groups/public/</url><name>pluginRepositories</name></pluginRepository>
</pluginRepositories>

第三种方式:

需要在客户端即部署要部署的工程电脑上配置 maven 环境,并修改
settings.xml 文件, 配置连接私服的用户和密码 。

此用户名和密码用于私服校验,因为私服需要知道上传的账号和密码是否和私服中的账号和密码一致。

在servers节点下进行配置

<!-- 定义稳定版本的id名称,用户名密码 -->
<server><id>releases</id><username>admin</username><password>admin123</password>
</server>
<!-- 定义开发版本的id名称,用户名密码 -->
<server><id>snapshots</id><username>admin</username><password>admin123</password></server>

注意id一定要准确,和nexus中相对应。

配置项目 pom.xml,配置私服仓库的地址,本公司的自己的 jar 包会上传到私服的宿主仓库,根据工程的版本号决定上传到哪个宿主仓库,如果版本为 release 则上传到私服的 release 仓库,如果版本为snapshot 则上传到私服的 snapshot 仓库。

<distributionManagement><repository><id>releases</id><url>http://localhost:8079/nexus/content/repositories/releases/</url></repository><snapshotRepository><id>snapshots</id><url>http://localhost:8079/nexus/content/repositories/snapshots/</url></snapshotRepository>
</distributionManagement>

注意:这里的 id 标签的值要和 settings.xml配置文件中的id值保持一致

在该工程中执行deploy命令,发布项目到私服上。

查看私服结果

 

 

http://www.lqws.cn/news/188713.html

相关文章:

  • vanna+deepseek+chainlit 实现自然语言转SQL的精度调优
  • Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
  • MySQL 性能调优入门 - 慢查询分析与索引优化基础
  • 行业案例 | ASOS 借助 Azure AI Foundry(国际版)为年轻时尚爱好者打造惊喜体验
  • [electron]预脚本不显示内联script
  • AIGC 基础篇 Python基础 01
  • [特殊字符]解决 “IDEA 登录失败。不支持早于 14.0 的 GitLab 版本” 问题的几种方法
  • Halcon透视矩阵
  • 深入了解JavaScript当中如何确定值的类型
  • 经典文献阅读之--PIVOT-R(原始驱动的航点感知世界模型用于机器人操作)
  • 蓝桥春晚魔术(欧拉定理+快速幂)
  • 今日行情明日机会——20250606
  • 车牌识别技术解决方案
  • 大模型在脑梗塞后遗症风险预测及治疗方案制定中的应用研究
  • 使用VTK还是OpenGL集成到qt程序里哪个好?
  • 电脑桌面太单调,用Python写一个桌面小宠物应用。
  • 计算机视觉与深度学习 | 基于MATLAB的相机标定
  • 【 *p取出内容 a得到地址】
  • 服务器健康摩尔斯电码:深度解读S0-S5状态指示灯
  • 循环神经网络(RNN)
  • 增量式网络爬虫通用模板
  • Numpy5——数组的扩充(相加、复制、广播)排序,形状调整
  • RabbitMQ 学习
  • android debug包和release包的区别
  • EDA断供危机下的冷思考:中国芯片设计软件的破局之道优雅草卓伊凡
  • 关于dropbear ssh服务
  • MySQL基本操作
  • 构建SDK-C Docker镜像
  • 服务器中日志分析的作用都有哪些
  • Spring整合MyBatis的两种方式