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的形式返回调试的输出结果,结果主要包括:

  • 组件的地址
  • 组件是否可以找到以及原因
  • 如果能找到组件,统计查找组件的过程

示例返回结果如下:

    {"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]]]"]}}}

注意查看其中的response节点,如上例中的"responseType":"NOT_FOUND"表示未找到组件,通过该方法可以详细排查组件不能下载的原因。

再提供一个pom类型的包“mojo-parent-30.pom”的调试示例

    {"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"]}}}

Sonatype Nexus高级配置相关推荐

  1. Sonatype Nexus安装

    目录 什么是Sonatype Nexus 安装前的准备(Linux上安装) 安装步骤 (1) 服务器上需安装最低1.8的jdk,安装jdk步骤省略. (2) 将Sonatype Nexus安装包上传到 ...

  2. maven私服搭建,sonatype nexus

    私服简介 https://blog.csdn.net/wuxiaobingandbob/article/details/79396239 1 . 私服简介 当 Maven 需要下载构件时,直接请求私服 ...

  3. Sonatype Nexus Repository Manager OSS仓库管理私服(一)——搭建私服

    nexus有收费版和开源免费版,其中的Nexus Repository Manager OSS是开源免费的,其功能基本满足我们的需求,所以本次搭建采用该版本. 下载 首先在Nexus Reposito ...

  4. Sonatype Nexus搭建maven私服仓库

    搭建Maven私服仓库 1. 概述 Sonatype Nexus是一种特殊的远程仓库,是架设在局域网内的仓库管理器. nexus 可以搭建局域网maven私服仓库(实现局域网用户共享),并且支持代理广 ...

  5. Sonatype Nexus 定期清理Snapshots节约磁盘空间

    Sonatype Nexus 定期清理Snapshots节约磁盘空间 Scheduled Tasks -> Add -> Respository/Group 选择 Snapshots(Re ...

  6. Linux下如何实现用户的集中管理(NIS服务器的高级配置)

    Linux下如何实现用户的集中管理 (NIS服务器的高级配置)   一.NIS服务器的属性设置   1.修改NIS系统的主机名 Linux系统可以使用hostname命令查看和临时设置Linux系统的 ...

  7. 大型企业网络配置系列课程详解(三)--OSPF高级配置与相关概念的理解

    大型企业网络配置系列课程详解(三)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...

  8. 理解并使用ASP.NET的高级配置

    引言: 本文将讨论ASP.NET应用的高级配置方法,在文中将讨论的一些配置如下:为ASP.NET进程设置独立的ID标记:配置ASP.NET网站或者网 站目录的访问权限:处理自定义配置事件等.除了以上提 ...

  9. Linux运维实战之DNS的高级配置(转发器、视图等)

    上次博文我们具体配置了一台DNS服务器并实现了主辅之间的区域传送,本次博文我们来看看DNS的一些高级配置. 在进行DNS的高级配置之前,必须要理解DNS的原理(参见http://sweetpotato ...

最新文章

  1. java treeset 重复,关于 TreeSet 为什么我这样写,还有是有重复的记录啊啊啊啊
  2. 垂垂老矣,一代人的回忆,Adobe Flash 寿命将尽
  3. mongodb数据库扩展名_MongoDB学习笔记:MongoDB 数据库的命名、设计规范
  4. 解决JBoss只能通过localhost访问不能通过IP的问题
  5. go基础库之环境变量的获取与设置以及如何使用默认值
  6. Django从理论到实战(part55)--将网站上传到GitHub
  7. 深度学习之循环神经网络(10)GRU简介
  8. C程序对整数中设置为1的位数进行计数
  9. 计算机打印机无法扫描,佳能MF4752打印机无法扫描文件怎么办?
  10. 不得不说的wepapi 优化
  11. 樊登读书会极致读后感_樊登:我只不过是把好为人师发挥到了极致
  12. Netperf 网络性能测试
  13. 做软件测试学编程的十大误区
  14. Pyecharts 猎聘招聘数据可视化
  15. 夜深人静写算法(十二)- 凸包
  16. jdk9 jdk10 jdk11启动rocketMQ的问题
  17. [PPPOE]PPPD的选项
  18. python国际象棋ai程序_用 Python 编写一个国际象棋 AI 程序
  19. java.lang.IllegalArgumentException: Can not set xxxx field XXXX
  20. R语言检验时间序列的平稳性(tseries包adf.test):时间序列数据是zoo或xts对象,使用coredata函数提取原始数据,再将其传递给adf.test函数

热门文章

  1. 商品订单表怎么设计_三级分销系统系统设计
  2. 模型描述的关系模式_你的项目该用哪种编程模式?
  3. 计组之指令系统:1、指令系统概述(定义、分类、格式、扩展操作码指令格式)
  4. LeetCode:917. 仅仅反转字母
  5. 计算机网络之数据链路层:14、局域网的基本概念
  6. (数据库系统概论|王珊)第九章关系查询处理和关系优化-第二节:查询优化
  7. Reactor模式和Proactor模式
  8. 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
  9. OD-标志寄存器判断语句对照表(汇编标志位寄存器对照表)
  10. QT5_数据类型转化