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配置文件配置私服的镜像文件

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配置文件,添加仓库的配置。

(不推荐)

XML 复制代码
<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节点下进行配置

XML 复制代码
<!-- 定义稳定版本的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 仓库。

XML 复制代码
<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命令,发布项目到私服上。

查看私服结果

相关推荐
FQNmxDG4S8 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
虹科网络安全8 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje9 小时前
Java语法进阶
java·开发语言·jvm
rKWP8gKv79 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫9 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287929 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本9 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
yaoxin52112310 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
极客先躯12 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户606487671889612 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java