Nexus3常用功能备忘
欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
关于nexus3
Java开发者常在内网部署nexus3作为以下用途:
- 中央仓库的的缓存;
- 内网私有仓库;
接下来分别实战这两个功能;
环境信息
- nexus3版本:3.19.1
- maven版本:3.6.3
- JDK:1.8.0_191
nexus3的部署
本文聚焦nexus3的使用,不在此讨论部署的细节,推荐使用docker来部署,我这里是在一台家用NAS上通过docker部署的,详情可参考《群晖DS218+做maven私服(nexus3)》
新建仓库用作缓存
这里的中央仓库选用阿里云的,速度和稳定性都比较出色:
- 新建仓库的操作如下图:

- 在类型选择页面选中maven2(proxy),如下图红框:

- 接下来的页面只要填两处,名字:aliyun-proxy,remote storage:http://maven.aliyun.com/nexus/content/groups/public/ ,如下图红框:

- 提交表单后回到列表页面,在新增的仓库上点击copy按钮即可得到仓库地址,如下图:

- 记下这个仓库的地址(http://192.168.50.43:8081/repository/aliyun-proxy/),内网所有电脑都能从这里地址获取中央仓库jar包,设置方法后面会说到;
新建仓库用作私有仓库
对于中央仓库没有的jar,以及项目中发布的二方库,都可以存放到私有仓库;
- 再新建一个仓库,类型选择maven2(hosted),如下图红框:

- 名字:nexus-private,其他的不需要修改:

- 这里要注意的是,如果您创建的私有仓库用来保存自己发布的二方库,最好建两个,一个用来保存正式发布的,Version policy类型:Release,另一个保存开发中的(maven本地不缓存),Version policy类型是Snapshot,本文为了简单起见只建了一个Release类型的;
- 记下这个仓库的地址:http://192.168.50.43:8081/repository/nexus-private/
- 至此,仓库创建完毕,我们一共有以下两个仓库:
缓存型:http://192.168.50.43:8081/repository/aliyun-proxy/
本地私有型:http://192.168.50.43:8081/repository/nexus-private/ - 有了仓库,接下来设置开发环境上的Maven了;
Maven设置(使用缓存仓库)
先做aliyun-proxy仓库的设置,这样就可以使用nexus3的缓存功能了:
- 打开maven的配置文件settings.xml;
- 找到mirrors节点,增加一个server而配置,内容如下:
<mirror>
<id>aliyun-proxy</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.50.43:8081/repository/aliyun-proxy/</url>
</mirror>
- 缓存仓库的设置已经完成了,接下来通过构建maven工程验证一下,下面是个最简单的maven工程的pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bolingcavalry</groupId>
<artifactId>nexus3demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
</project>
- 在pom.xml所在目录执行命令:mvn clean compile -U -DskipTests ,如下图,可见是通过nexus3下载中央仓库的jar,然后项目构建成功:

中央仓库不存在的jar
私有仓库的一个重要功能,就是提供中央仓库之外的jar下载,接下来举个例子:
- 在pom.xml中添加一个中央仓库不存在的jar:
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-schema-registry-client</artifactId>
<version>3.3.1</version>
</dependency>
- 再去构建就会报错:

上述问题是常见的,有的jar没有发布到中央仓库,用maven构建时找不到就报错了。
上传jar到私有仓库
解决上述问题的思路:找到这个jar -> 上传到私有仓库 -> maven构建时从私有仓库下载这个jar;
- 思路有了,现在来试着用私有仓库解决上面的问题;
- 把上述jar下载到本地,下载地址:http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1.jar
- 登录nexus3,按照如下步骤操作:

- 填写表单,按照下图步骤操作,把jar文件提交到nexus3:

- 现在私有仓库中已经有jar了,接下来看看maven如何使用这个jar文件;
maven使用私有仓库
- 打开maven的配置文件settings.xml;
- 找到profiles节点,增加一个profile的配置,内容如下:

- 找到activeProfiles节点,增加一个activeProfile而配置,内容如下:
<activeProfile>nexus3</activeProfile>
- 找到刚才新增的mirror,修改其mirrorOf节点的值,修改后的mirror节点值如下:
<mirror>
<id>aliyun-proxy</id>
<mirrorOf>external:local-nexus3</mirrorOf>
<url>http://192.168.50.43:8081/repository/aliyun-proxy/</url>
</mirror>
- mirrorOf的值从之前的*改成external:local-nexus3,是做了转发逻辑的排除操作,这样做了之后,local-nexus3仓库的请求会转发到私有仓库,而其他所有的请求都转发到了缓存仓库aliyun-proxy;
- 再次构建刚才的maven项目,这次终于构建成功了,如下图,kafka-schema-registry-client相关的数据都从私有仓库下载:

至此,nexus3常用的缓存和私有仓库功能都尝试过了,如果您正在搭建私有maven仓库,希望本文能够给您提供参考。
欢迎关注公众号:程序员欣宸
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos
Nexus3常用功能备忘的更多相关文章
- metasploit 常用命令备忘
metasploit 常用命令备忘 MSFconsole Commands-------------------------------------24show exploits 查看所有exp ...
- Linux基础之常用基本命令备忘
Linux基础之常用基本命令备忘 PWD 查询当前所在Linux上的位置 / 根目录 CD(change directory)切换目录 语法 CD /(注意添加空格) LS ...
- Webstorm常用快捷键备忘(Webstorm入门指南)
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...
- sublime 常用快捷键备忘
转一篇sublime常用的快捷键备忘 sublime常用快捷键 选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本 ...
- Webstorm常用快捷键备忘
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...
- Axure常用操作备忘
目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...
- CentOS常用命令备忘
1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...
- TF版网络模型搭建常用代码备忘
本文主要介绍如何搭建一个网络并训练 最近,我在写代码时经常碰到这样的情况,明明记得代码应该怎么写,在写出来的代码调试时,总是有些小错误.原因不是接口参数个数不对,就是位置不对.为了节约上网查找时间,现 ...
- 【荐1】Total Commander 7.57 个人使用设置 及 常用快捷键 备忘
Total Commander 7.57a 下载地址:http://www.baidu.com/s?wd=total commander 7.57 破解版 软件整体预览图:(注意,下面的版本我用的是 ...
随机推荐
- GO练习题
package main import( "fmt" ) func list(n int) { for i := 0; i <= n; i++ { fmt.Printf(&q ...
- 初识ABP vNext(11):聚合根、仓储、领域服务、应用服务、Blob存储
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 聚合根 仓储 领域服务 BLOB存储 应用服务 单元测试 模块引用 最后 前言 在前两节中介绍了ABP模块开发的基本步 ...
- day58:Linux:BashShell&linux文件管理&linux文件下载上传
目录 1.BashShell 2.Linux文件管理 3.Linux文件下载和上传 BashShell 1.什么是BeshShell? 命令的解释,用来翻译用户输入的指令 2.BashShell能做什 ...
- 关于C++的右值引用的一些看法
简介 关于C++中的右值引用的详细可以看这一批博文<从4行代码看右值引用>.那一篇博文详细结合四行简单的代码详细介绍了右值引用的使用方法和一些场景,非常实用. 而本篇博文主要介绍一下我在学 ...
- Tensorflow学习笔记No.2
使用函数式API构建神经网络 函数式API相比于keras.Sequential()具有更加灵活多变的特点. 函数式API主要应用于多输入多输出的网络模型. 利用函数式API构建神经网络主要分为3步, ...
- 警惕char类型直接相加
今天在写某个程序需要对两个数字字符串进行相加操作,比如字符串1:12345,字符串2:23456.需要1和2相加.2和3相加.就是两个字符相同位置的数进行相加. 这个一看很好完成,写一个for,然后取 ...
- 天啦噜!知道硬盘很慢,但没想到比 CPU L1 Cache 慢 10000000 倍
前言 大家如果想自己组装电脑的话,肯定需要购买一个 CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬 ...
- Windows下CertUtil校验和编码文件
目录 前言 CertUtil计算文件hash 计算MD2 计算MD4 计算MD5 计算SHA1 计算SHA256 计算SHA384 计算SHA512 文件base64编码 文件base64解码 文件h ...
- MeteoInfoLab脚本示例:AMSR-E卫星数据投影
AMSR-E(http://nsidc.org/data/amsre/index.html)数据中的Land3数据是HDF-EOS4格式,投影是Cylindrical_Equal_Area.这里示例读 ...
- MeteoInfoLab脚本示例:inpolygon
inpollygon函数是用来判断带坐标(x/y)的数据是否在某个或者一组多边形(Polygon)中,返回的结果中如果做多边形内则值为1,否则值为-1.下面一个例子演示了利用一个shape文件和inp ...