云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Kubernetes 中搭建Maven私服(Nexus)提升团体开发效率

jxf315 2025-06-10 16:06:28 教程文章 11 ℃

搭建私服主要出于以下方面的考虑

  1. 加速构建过程:私服会将远程仓库的依赖缓存到本地,从而减少了构建过程中的下载时间。开发团队在构建项目时可以从私服中快速获取所需依赖,从而提高构建速度,提升团队效率。
  2. 确保依赖可用性:当远程仓库不稳定或不可访问时,私服仍可提供之前缓存的依赖。这保证了构建过程不受外部因素影响,减少了因网络问题导致的构建失败,进而提高团队的效率。
  3. 便捷的内部依赖管理:通过私服,团队可以方便地管理和分发企业内部开发的库和组件。这有助于简化企业内部项目之间的依赖管理,提高协同开发的效率。
  4. 严格的版本控制:私服可以实现对依赖版本的严格控制,确保开发团队使用的依赖符合企业规范。这有助于降低版本冲突带来的问题,减少排查和解决问题的时间,从而提高团队效率。
  5. 增强安全性:私服可以限制对外部仓库的访问,降低潜在的安全风险。此外,通过私服的权限控制,可以确保只有授权用户才能访问特定的仓库或依赖,从而提高系统的安全性。



搭建Nexus的步骤如下:

  1. 创建PV
  2. 创建Deployment
  3. 创建Ingress
  4. nexus的仓库管理
  5. nexus的用户管理
  6. 本地私服配置

创建PV


创建Deployment

镜像:sonatype/nexus3

挂载路径:/nexus-data

这个路径是用来存储nexus的数据的。


创建Ingress


nexus的仓库管理

我们在创建好nexus后就可以通过域名访问nexus界面。

默认的账号:admin

默认的密码:【镜像运行时生成,需要在镜像中查看】

cat /nexus-data/admin.password



  1. 登录


  1. 仓库管理

aliyun-maven

这个仓库是需要创建的。主要作用是搭理阿里云提供的maven私服为我们下载公共的jar加速使用。

点击页面上:[Create repository]

在新页面中选择:[maven2 (proxy)]


这个页面中需要填写以下信息:

Name: [aliyun-maven] 仓库的名字

Remote storage: [https://maven.aliyun.com/nexus/content/groups/public/]

Blob store:[default]这个是仓库中文件的存储位置




xxx-Release

这个库用来存储我们自己项目稳定版本的jar

xxx-Snapshot

这个库用来存储我们自己项目在研发阶段的jar

这两个库都是需要创建的。步骤与aliyun-maven类似,以下是有区别的部分。

在新页面中选择:[maven2 (hosted)]

进入创建仓库界面根据需要选择:Version policy:

maven-central

这个仓库是用来代理maven的中央仓库的。nexus创建好就存在正常情况下不用去管它。

maven-public

这个仓库是一组仓库的集合。我们在客户端配置的就是这个仓库。它也是nexus自带的,但是我们需要对它进行配置,来优化我们的使用体验。

点击此仓库进入编辑页面

按照下图所示配置仓库成员。

如果maven从此仓库拉取jar包则会按照顺序从仓库成员内查找。

在完成后需要将代理仓库如:aliyun-maven,maven-central的索引更新下就可以使用

nexus的用户管理



本地私服配置

在开发电脑上配置settings.xml

注意将username和password替换成对应的开发人员账号。账号在nexus的用户管理里创建。

vi ~/.m2/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <pluginGroups>
  </pluginGroups>

  <proxies>
  </proxies>

  <servers>
    <server>
        <id>xxx-releases</id>
        <username>${username}</username>
        <password>${password}</password>
    </server>
    <server>
        <id>xxx-snapshots</id>
        <username>${username}</username>
        <password>${password}</password>
    </server>
  </servers>
  <mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus </name>
        <url>http://nexus.xxx.com/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <profiles>
  </profiles>

</settings>

在项目的pom.xml中添加以下内容

<distributionManagement>
		<repository>
			<id>xxx-releases</id>
			<name>xxx 代码发布</name>
			<url>http://nexus.xxx.com/repository/xxx-Release/</url>
		</repository>
		<snapshotRepository>
			<id>xxx-snapshots</id>
			<name>xxx 快照发布</name>
			<url>http://nexus.xxx.com/repository/xxx-Snapshot/</url>
		</snapshotRepository>
	</distributionManagement>

完成后再命令行中执行此命令即可将项目的jar发布到私服中,这个命令执行后会根据项目中的version字段将jar上传到对应的仓库。

mvn clean deploy
最近发表
标签列表