Nexus搭建maven私有仓库

目录

1.Nexus介绍

2.操作步骤

1.下载Nexus

2.安装和启动nexus

3.使用私服

1.登录管理员

2.私服介绍

1.配置参数认识

2.创建仓库

4.maven使用私库

1.安装maven

2.配置maven

3.在项目中打包部署和发布

5.向私库添加jar包

​1.添加jar

2.使用jar


1.Nexus介绍

内网访问,内网团队使用一个服务缓存节省外网宽带。

微服务开发中加速 Maven 项目构建,加快团队合作,提高工作效率

允许上传和下载私有库,并且不被外部访问,安全 稳定。

方便内部项目服务的依赖引用,而不需要其他项目的完整源代码。

2.操作步骤

1.下载Nexus

官网地址:Download Repository OSS 但是下载速度比较慢

这里我下载好了打包到了网盘,可以直接通过我的网盘去下载,地址如下:

链接:https://pan.baidu.com/s/1xQpQrV-oM7fpG-mTkQddWQ?pwd=701r

提取码:701r

下载完成后会获得一个压缩包,解压即可

2.安装和启动nexus

默认端口是8081可能会和其他程序端口有冲突,修改nexus端口,可以进入\nexus-3.31.1-01\etc目录,修改nexus-default.properties文件中的port

使用 ./nexus.exe /install nexus安装nexus

安装完成后使用 ./nexus.exe /start启动私库

启动完成后访问localhost:port 访问私库 (localhost:8088)

当看到这个页面就表示安装完成了

3.使用私服

1.登录管理员

启动成功后 密码会随机生成 在\nexus\sonatype-work\nexus3 目录下有一个password文件中

使用这个文件里的密码进行登录,用户名为admin,登录成功后会进行二次验证,这里输入相同的密码即可:

点击next以下是不重要的选择,跟着填就行

最后,admin.password文件是一次性的,当你登录成功改文件会被删除,下次登录相信我你肯定不会记得密码的,所以一定要记得修改用户密码:

2.私服介绍

1.配置参数认识

nuget-hosted:本地存储。像官方仓库一样提供本地私库功能

hosted有三种方式:Releases、Snapshot、Mixed

Releases: 一般是已经发布的Jar包

Snapshot: 未发布的版本

Mixed:混合的

nuget.org-proxy:提供代理其它仓库的类型

nuget-group:组类型,能够组合多个仓库为一个地址提供服务

maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar

maven-releases:私库打包发行版jar

maven-snapshots:私库快照(调试版本)jar

maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用

2.创建仓库

点击 Create repository创建maven代理仓库(proxy类型)

以阿里云为例,创建本地阿里云代理仓库(也可以创建华为云、腾讯云)

配置好阿里云镜像地址后,点击创建即可,这里提供一个查看阿里云各版本仓库的地址:仓库服务

创建完成后会回到仓库管理页面,这时就能看到我们创建成功的代理仓库了,同时也可以看到代理仓库的状态是否正常

再创建一个本地仓储用来存放release版本的jar包

类型一定要选择release

配置完成后,最后将阿里云镜像配置为优先使用

4.maven使用私库

1.安装maven

2.配置maven

把私库地址配置到maven配置文件中

javascript 复制代码
<?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">

  <!-- <localRepository>C:\\Users\\monke\\.m2\\repository</localRepository> -->
  <localRepository>D:\software\apache-maven-3.6.1\repository</localRepository>

  <servers>
  <!-- 配置本地仓库访问私服的权限  nexus的 登录用户名密码 -->
	<server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin</password>
    </server>
  </servers>

  <mirrors>
	<!-- 配置本地仓库资源来源 -->
    <mirror>
        <id>maven-public</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8088/repository/maven-public/</url>
    </mirror>
  
	 <mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>*</mirrorOf>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
	 </mirror>
  </mirrors>

</settings>

项目部署和发布需要在pom.xml中添加 distributionManagement 配置

javascript 复制代码
<!--  maven仓库配置 deploy时可推送到配置的仓库中	-->
<distributionManagement>
	<repository>
		<id>maven-releases</id>
		<name>Nexus Releases Repository Pro</name>
		<url>http://localhost:8088/repository/maven-releases/</url>
	</repository>
 
	<snapshotRepository>
		<id>maven-snapshots</id>
		<name>Nexus Snapshots Repository Pro</name>
		<url>http://localhost:8088/repository/maven-snapshots/</url>
	</snapshotRepository>
</distributionManagement>

3.在项目中打包部署和发布

maven命令介绍:

package 命令完成了项目编译、单元测试、打包功能,但并没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

install 命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓3库,但没有布署到远程maven私服仓库

deploy 命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

使用deploy打包并部署到私库,并在私库中查看

5.向私库添加jar包

公网上找不到的开发包或者是客户提供的特殊的开发包,开发人员可以通过Maven添加jar包,将jar包中的功能添加到私库中供其他链接私库的人使用

流程:

1.添加jar

点击右侧的"Upload",点击"maven-releases"

点击Browse上传准备好的jar包

点击"Extension",填入相对应的jar包文件类型名称。如上传xxxx.jar,则"Extension"填入"jar"

自定义编辑Group ID(输入英语或数字)、Artifact ID(输入英语或数字)和Version。输入完成后,勾上"Generate a POM file with these coordinates",点击"Upload"

注意:这里的设置的id在pom中引入也是用相同的名称

上传完成后,可以点击"view it now"查看

也可以搜索查看

点击搜索到的结果查看上传的jar包的详情

2.使用jar

在pom.xml中,使用刚刚定义的groupId和artifactId以及version即可使用上传的jar包

<dependency>

<groupId>admin</groupId>

<artifactId>test</artifactId>

<version>1.0</version>

</dependency>

相关推荐
阿伟*rui1 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel
XiaoLeisj3 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck3 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei3 小时前
java的类加载机制的学习
java·学习
Yaml45 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~5 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616885 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
aloha_7896 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
记录成长java6 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
睡觉谁叫~~~6 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust