Sonatype Nexus高级配置
Sonatype Nexus的安装配置参见:CentOS系统中安装Nexus并导入已有的构件库。Nexus内置了Jetty容器,${NEXUS_HOME}/bin/jsw目录下包含了各个操作系统的启动脚本。当然,如果你不喜欢内置的Jetty容器,也可以下载Nexus的war包,部署在tomcat等容器中。
安装部署后,比较重要的是能够对其进行深入的管理和配置,本文将介绍一些关于Sonatype Nexus的高级配置技巧,方便您进行配置管理。
1、使用Maven上传组件注意事项
- host类型的仓库才允许上传组件
- 仓库需要开启允许上传功能,配置选项中的Deployment Policy选择“Allow Redeploy”,见下图
- Nexus用户必须具有“Artifact Upload”的权限,Nexus内置了一些角色,比如“Nexus Deployment Role”,就可以上传组件
- Maven主配置文件中需要配置用户信息及上传的仓库信息,配置示例如下:
<server><id>thirdparty</id><username>deployment</username><password>password</password> </server>
2、修改监听端口
默认情况下,Nexus监听端口8081。可以通过以下方法更改这个端口。
- 停止Nexus
- 编辑${NEXUS_HOME}/conf/plexus.properties文件,修改applicationPort的值
- 重启Nexus。
3、使Nexus支持其它格式的包
Nexus默认支持jar、war、pom、ejb、ear、rar、par等类型的包,如果希望能添加一些其它类型的包,可以配置如下:
在${nexus-work}/conf/packaging2extension-mapping.properties配置文件中增加配置:
my -custom-packaging=myextension
|
如果该配置文件不存在则手动创建该文件。
4、更新仓库索引
1)强制更新索引
nexus索引经常会出现与远程仓库索引不一致的情况,导致某些包不能正常下载,可以强制更新仓库索引,保持索引同步:
- 以管理员身份登录
- 右键点击仓库,选择Expire Cache
- 右键点击仓库,选择Update Index
2)定时更新索引
- 以管理员身份登录
- 左侧导航栏选择Administration->Scheduled Tasks
- 点击add添加一个计划任务
- 任务类型选择:Update Repositories Index,Repository/Group选择要更新的仓库,Recurrence选择计划任务的周期类型
5、调试组件下载过程
如果Nexus本地索引中包含组件,但是却不能下载,可能的原因如下:
- 包含组件的组件库不在group类型的组件库中
- 路由规则封锁了组件的下载
Nexus提供了可以调试组件下载过程的方法,在组件的下载全路径后面增加参数“?describe”,示例如下:
http://192.168.120.202:8081/nexus/content/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom?describe
http://localhost:8081/nexus/content/groups/public/foo/bar/1.0/bar-1.0.jar?describe
Nexus将会以json的形式返回调试的输出结果,结果主要包括:
- 组件的地址
- 组件是否可以找到以及原因
- 如果能找到组件,统计查找组件的过程
示例返回结果如下:
![](/assets/blank.gif)
{"data":{"requestUrl":"http://localhost:8081/nexus/content/groups/public/test/project/1.0/project-1.0.jar?describe","processingTimeMillis":471,"request":{"requestUrl":"http://localhost:8081/nexus/content/groups/public/test/project/1.0/project-1.0.jar?describe","requestPath":"/test/project/1.0/project-1.0.jar","requestContext":["request.received.timestamp=1276286536595","request.address=0:0:0:0:0:0:0:1%0","request.remoteOnly=false","request.url=http://localhost:8081/nexus/content/groups/public/test/project/1.0/project-1.0.jar?describe","request.localOnly=false","request.appRootUrl=http://localhost:8081/nexus"]},"response":{"responseType":"NOT_FOUND","processedRepositoriesList":["public","snapshots","thirdparty","central","java.net-m2","java.net-m1-m2","google","apache-snapshots","codehaus-snapshots"],"appliedMappings":["public repository applied [11b647d6117038d8=[type=EXCLUSION, groupId=public, patterns=[.*/project/.*], mappedRepositories=[releases]]]"]}}}
![](/assets/blank.gif)
注意查看其中的response节点,如上例中的"responseType":"NOT_FOUND"表示未找到组件,通过该方法可以详细排查组件不能下载的原因。
再提供一个pom类型的包“mojo-parent-30.pom”的调试示例
![](/assets/blank.gif)
{"data": {"requestUrl": "http://192.168.120.202:8081/nexus/content/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom?describe", "processingTimeMillis": 1322, "request": {"requestUrl": "http://192.168.120.202:8081/nexus/content/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom?describe", "requestPath": "/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "requestContext": ["request.remoteOnly=false", "request.localOnly=true"]}, "response": {"responseType": "FILE", "responseActualClass": "org.sonatype.nexus.proxy.item.DefaultStorageFileItem", "responsePath": "/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "responseUid": "central:/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "originatingRepositoryId": "central", "originatingRepositoryName": "Central", "originatingRepositoryMainFacet": "org.sonatype.nexus.proxy.maven.MavenProxyRepository", "processedRepositoriesList": [ ], "properties": ["created=1333560570000", "modified=1333560570000", "lastRequested=1375255131976", "remoteChecked=1375255131556", "remoteUrl=http://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "storedLocally=1375255131556", "isExpired=false", "readable=true", "writable=true", "virtual=false"], "attributes": ["digest.md5=61a1f7765d45a51a6a7bb03bf410588f", "digest.sha1=be742febdaa3cc7a971dacdf8cdc7ebd94b5765b", "remote.sha1=be742febdaa3cc7a971dacdf8cdc7ebd94b5765b", "request.address=192.168.120.121", "request.user=anonymous", "storageItem-checkedRemotely=1375255131556", "storageItem-created=1333560570000", "storageItem-expired=false", "storageItem-generation=2", "storageItem-lastRequested=1375255131976", "storageItem-length=26627", "storageItem-modified=1333560570000", "storageItem-path=/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "storageItem-readable=true", "storageItem-remoteUrl=http://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "storageItem-repositoryId=central", "storageItem-storedLocally=1375255131556", "storageItem-writable=true"]}}}
![](/assets/blank.gif)
Sonatype Nexus高级配置相关推荐
- Sonatype Nexus安装
目录 什么是Sonatype Nexus 安装前的准备(Linux上安装) 安装步骤 (1) 服务器上需安装最低1.8的jdk,安装jdk步骤省略. (2) 将Sonatype Nexus安装包上传到 ...
- maven私服搭建,sonatype nexus
私服简介 https://blog.csdn.net/wuxiaobingandbob/article/details/79396239 1 . 私服简介 当 Maven 需要下载构件时,直接请求私服 ...
- Sonatype Nexus Repository Manager OSS仓库管理私服(一)——搭建私服
nexus有收费版和开源免费版,其中的Nexus Repository Manager OSS是开源免费的,其功能基本满足我们的需求,所以本次搭建采用该版本. 下载 首先在Nexus Reposito ...
- Sonatype Nexus搭建maven私服仓库
搭建Maven私服仓库 1. 概述 Sonatype Nexus是一种特殊的远程仓库,是架设在局域网内的仓库管理器. nexus 可以搭建局域网maven私服仓库(实现局域网用户共享),并且支持代理广 ...
- Sonatype Nexus 定期清理Snapshots节约磁盘空间
Sonatype Nexus 定期清理Snapshots节约磁盘空间 Scheduled Tasks -> Add -> Respository/Group 选择 Snapshots(Re ...
- Linux下如何实现用户的集中管理(NIS服务器的高级配置)
Linux下如何实现用户的集中管理 (NIS服务器的高级配置) 一.NIS服务器的属性设置 1.修改NIS系统的主机名 Linux系统可以使用hostname命令查看和临时设置Linux系统的 ...
- 大型企业网络配置系列课程详解(三)--OSPF高级配置与相关概念的理解
大型企业网络配置系列课程详解(三)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...
- 理解并使用ASP.NET的高级配置
引言: 本文将讨论ASP.NET应用的高级配置方法,在文中将讨论的一些配置如下:为ASP.NET进程设置独立的ID标记:配置ASP.NET网站或者网 站目录的访问权限:处理自定义配置事件等.除了以上提 ...
- Linux运维实战之DNS的高级配置(转发器、视图等)
上次博文我们具体配置了一台DNS服务器并实现了主辅之间的区域传送,本次博文我们来看看DNS的一些高级配置. 在进行DNS的高级配置之前,必须要理解DNS的原理(参见http://sweetpotato ...
最新文章
- java treeset 重复,关于 TreeSet 为什么我这样写,还有是有重复的记录啊啊啊啊
- 垂垂老矣,一代人的回忆,Adobe Flash 寿命将尽
- mongodb数据库扩展名_MongoDB学习笔记:MongoDB 数据库的命名、设计规范
- 解决JBoss只能通过localhost访问不能通过IP的问题
- go基础库之环境变量的获取与设置以及如何使用默认值
- Django从理论到实战(part55)--将网站上传到GitHub
- 深度学习之循环神经网络(10)GRU简介
- C程序对整数中设置为1的位数进行计数
- 计算机打印机无法扫描,佳能MF4752打印机无法扫描文件怎么办?
- 不得不说的wepapi 优化
- 樊登读书会极致读后感_樊登:我只不过是把好为人师发挥到了极致
- Netperf 网络性能测试
- 做软件测试学编程的十大误区
- Pyecharts 猎聘招聘数据可视化
- 夜深人静写算法(十二)- 凸包
- jdk9 jdk10 jdk11启动rocketMQ的问题
- [PPPOE]PPPD的选项
- python国际象棋ai程序_用 Python 编写一个国际象棋 AI 程序
- java.lang.IllegalArgumentException: Can not set xxxx field XXXX
- R语言检验时间序列的平稳性(tseries包adf.test):时间序列数据是zoo或xts对象,使用coredata函数提取原始数据,再将其传递给adf.test函数
热门文章
- 商品订单表怎么设计_三级分销系统系统设计
- 模型描述的关系模式_你的项目该用哪种编程模式?
- 计组之指令系统:1、指令系统概述(定义、分类、格式、扩展操作码指令格式)
- LeetCode:917. 仅仅反转字母
- 计算机网络之数据链路层:14、局域网的基本概念
- (数据库系统概论|王珊)第九章关系查询处理和关系优化-第二节:查询优化
- Reactor模式和Proactor模式
- 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
- OD-标志寄存器判断语句对照表(汇编标志位寄存器对照表)
- QT5_数据类型转化