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>

相关推荐
霸道流氓气质6 小时前
Java中Stream应用场景示例-订单报表分组统计
java
程序员烧烤6 小时前
【Java基础14】函数式接口、lamba表达式、方法引用一网打尽(下)
java·开发语言
spencer_tseng6 小时前
pinyin4j-2.5.0.jar
java·jar·pinyin4j
ZhengEnCi6 小时前
J1B-为什么99%的人配置Java环境失败?大厂开发者5分钟搞定的JDK安装与环境配置完全指南
java
零雲6 小时前
java面试:有了解过kafka架构吗,可以详细讲一讲吗
java·面试·kafka
一行•坚书6 小时前
kafka服务端与客户端如何协作?生产者发送消息分区策略是什么?消费者组分区策略?集群与ACK机制?
java·后端·kafka
serve the people6 小时前
Prompt Composition with LangChain’s PipelinePromptTemplate
java·langchain·prompt
天天摸鱼的java工程师6 小时前
干掉系统卡顿!Excel异步导出完整实战方案(百万数据也不慌)
java·后端
心随雨下7 小时前
Java中将System.out内容写入Tomcat日志
java·开发语言·tomcat
-指短琴长-7 小时前
ProtoBuf速成【基于C++讲解】
android·java·c++