maven Nexus私库安装使用总结

大纲

  • nexus安装总结
  • nexus使用总结
  • 域名配置
  • admin账号密码修改
  • 创建仓库组
  • 创建仓库
  • 创建权限
  • 创建角色
  • 创建用户
  • mvn deploy 部署配置

nexus安装总结

本例子使用的是常见的nexus2.x版本 注意需要先安装JDK

Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包

相关的nexus-2.14.5-02-bundle.zip 以上传到百度云盘

nexus2.x 下载地址 https://help.sonatype.com/repomanager2/release-notes/2022-release-notes
nexus3.x 下载地址 https://help.sonatype.com/repomanager3/product-information/download

安装步骤

解压zip包

解压完以后会得到两个目录:

  • nexus-2.14.5-02 (放的是nexus程序)
  • sonatype-work (放的是nexus各种数据例如仓库,jar包 日志等)
    sonatype-work 放的是nexus各种数据例如仓库,jar包 日志等

修改配置

可以修改nexus启动的端口,主要是修改 conf/nexus.properties

启动nexus

启动脚本保存在bin文件夹下 nexus命令, 此命令可以带多个参数 stop restart start等
如果是ROOT用户启动的话,会报错If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.

需要修改nexus命令指定RUN_AS_USER=root


启动成功后访问 http://ip:端口/nexus 默认账号密码 admin /admin123

nexus使用总结

域名配置

域名配置可以实现使用域名访问私库

点击server菜单 修改域名

保存后即可

账号密码修改

右上角的下拉菜单,点击后选择profile 可以修改admin的账号密码

创建仓库组

nexus安装完成后默认创建 Public Repositories组,我们在pom.xml配置中可以使用这个组,就可以拉取默认4个仓库的内容

例如创建一个 jim自定义组 这个组无法获取 3rd party库

分别访问
http://repositiry.neuxs.com/nexus/content/groups/jim/
http://repositiry.neuxs.com/nexus/content/groups/public/

可以看到自定义组 Jim Repositories没有三方库中的包

在项目pom.xml中可以添加repository (注意如果setting.xml中配置了mirror 则以下配置无效)

<repositories><repository><id>my-maven</id><name>my-maven</name><url>http://repositiry.neuxs.com/nexus/content/groups/jim/</url><layout>default</layout> <!--此配置可以不用配置 默认default  default(默认)legacy(遗留 对应maven.1.x)-><snapshots><enabled>true</enabled>   <!--可以从这个仓库下载snapshots版本--><updatePolicy>always</updatePolicy> <!-- 仓库更新策略 always 或者 never --></snapshots><releases><enabled>true</enabled> <!--可以从这个仓库下载releases版本--></releases></repository>
</repositories>

updatePolicy可以配置仓库的更新策略 【always | daily | interval | never】

  • always 是每次都去远程仓库查看是否有更新,
  • daily 是只在第一次的时候查看是否有更新,当天的其它时候则不会查看;
  • interval 允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次,
  • never 是不会去远程仓库中查找

创建仓库

Nexus 2.x 默认创建了 6 个仓库,我们称它们为 Nexus 内置仓库:

  • Maven Central:该仓库用来代理 Maven 中央仓库,其策略为 Release,只会下载和缓存中央仓库中的发布版本的构件
  • Releases:策略为 Release 的宿主仓库,用来部署公司或组织内部的发布版本构件 (程序每一次正常版本发布都应该发布到Release库中)
  • Snapshots:策略为 Snapshot 的宿主仓库,用来部署公司或组织内部的快照版本构件
  • 3rd party:策略为 Release 的宿主仓库,用来部署第三方发布版本构件,这些构件一般无法从任何远程仓库中获得 (所以由公司内部人员手动上传到maven)
  • Public Repositories:该仓库组将上述所有存储策略为 Release 的仓库聚合并通过统一的地址提供服务

仓库的策略:

  • Release
  • Snapshots

每个仓库都具有一系列属性:

  • Type:仓库的类型,Nexus 中有 4 中仓库类型:group(仓库组)、hosted(宿主仓库)、proxy(代理仓库)以及 virtual(虚拟仓库)。
  • Format:仓库的格式。
  • Policy:仓库的策略,表示该仓库是发布(Release)版本仓库还是快照(Snapshot)版本仓库。
  • Repository Status:仓库的状态。
  • Repository Path:仓库的路径。
(1)hosted 类型的仓库,内部项目的发布仓库 此类仓库数据保存在安装nexus的集群上
(2)releases内部的模块中release模块的发布仓库
(3)snapshots发布内部的SNAPSHOT模块的仓库
(4)3rd party第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
(5)proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
(6)group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库

配置每个仓库的上传下载,是否可以部署等配置

例如创建一个Mytest 仓库类型为hosted(宿主仓库)

在项目pom.xml中可以添加repository即可使用Mytest ( 注意如果setting.xml中配置了mirror 则以下配置无效)

<repositories><repository><id>my-test</id><name>my-test</name><url>http://repositiry.neuxs.com/nexus/content/repositories/Mytest/</url></repository>
</repositories>

创建权限

可以给自定义的仓库创建权限 例如:给Mytest库创建

创建完成后可以看到出现对Mytest库 CRUD权限

可以基于这些新建的权限创建角色

创建角色

nexus默认创建了多种role用于管理仓库

  • Nexus开头的都是关于nexus的权限
  • Repo开头的都是关于仓库的权限
  • UI开头的都是关于UI界面的权限

例如:

UI:Basic UIPrivileges:让用户拥有访问Nexus界面必须的最基本的权限。UI:Repository Browser:让用户拥有访问Nexus界面浏览仓库页面所需要的权限。Repo:All Repositories (Read):给予用户读取所有仓库内容的权限。
没有仓库的读权限用户将无法在仓库页面看到实际的仓库内容,也无法使用Maven从仓库下载构件。Repo:All Repositories (Full Control):给予用户完全控制所有仓库内容的权限。
用户不仅可以浏览、下载构件,还可以部署构件及删除仓库内容。

创建自定义角色test 只能对MyTest仓库进行操作

注意:如果要mvn deploy 必须要配置create update权限

创建用户

可以创建用户,不同的用户可以有不同的操作权限

用户创建成功后可以在列表中查看用户信息,修改密码

使用新创建的用户liuyijiang登录,可以看到权限受到控制

部署发布配置

日常开发过程中常用到mvn deploy将自身的项目发布到nexus上供其他人使用

实现mvn deploy前需要注意三个点

  • 1 Nexus仓库配置
  • 2 项目中的pom.xml配置
  • 3 maven settings.xml配置

Nexus仓库配置

注意仓库策略配置

  • 1 Repository Policy
  • 2 Deployment Policy

Repository Policy

  • Snapshot 只能上传快照版 (即项目pom.xml中 version 字段必须是-SNAPSHOT结尾)
  • Release 只能上传Release版 (version字段任意)

Deployment Policy

  • Allow Redeploy 允许重复deploy

    Allow Redeploy及同一个版本号可以重复提交,一般仓库策略是Snapshot(快照版)可以允许重复deploy

  • Disable Redeploy 禁止重复deploy

    Disable Redeploy及同一个版本号不能重复提交,一般仓库策略是Release,使用禁止重复deploy

  • Read Only 禁止deploy

如果不匹配Repository策略和Deployment策略 deploy时会出现 status: 400 Bad Request错误

项目中的pom.xml配置

项目的pom.xml文件中需要添加配置,用于指定发布到哪个仓库

<distributionManagement><repository><id>Mytest</id> <!--注意id 这个id在settings.xml中需要使用--><url>http://repositiry.neuxs.com/nexus/content/repositories/Mytest/</url> <!--配置对应的仓库地址--></repository>
</distributionManagement>

maven settings.xml配置

需要在maven settings.xml配置文件加入拥有对应库操作权限的用户账号密码

注意: id 就是pom.xml文件中配置的id

注意:如果账号密码配置错误或账号没有权限 deploy时会出现 status: 403 Forbidden

可以给团队每个用户创建对应的账号,配合nexus的 System Feeds 功能查看最近的deploy是哪个用户什么时候发布的

其他一些配置

配置通知邮箱

配置定时任务

常见的一些定时任务

Download Indexs:为代理仓库下载远程索引。
Empty Trash:清空Nexus的回收站,一些操作实际是将文件移到了回收站中。
Evict UnusedProxied Items From Repository Caches:删除代理仓库中长期未被使用的构件缓存。
Expire RepositoryCache:Nexus为代理仓库维护了远程仓库的信息以避免不必要的网络流量,该任务清空这些信息以强制Nexus去重新获取远程仓库的信息。
Publish Indexs:将仓库索引发布成可供m2eclipse和其他Nexus使用的格式。
Purge NexusTimeline:删除Nexus的时间线文件,该文件用于建立系统的RSS源。
Rebuild MavenMetadata Files:基于仓库内容重新创建仓库元数据文件maven-metadata.xml,同时重新创建每个文件的校验和md5与sha1。
ReIndexRepositories:为仓库编纂索引。
Remove SnapshotsFrom Repositories:以可配置的方式删除仓库的快照构件。
Synchronize ShadowRepository:同步虚拟仓库的内容(服务基于Maven1)。

mirror 与 Repository的区别

可以在maven settings.xml 配置mirror

例如在setting.xml 配置了mirror 则优先使用此次的配置<mirrors><mirror><id>nexus</id><mirrorOf>*</mirrorOf><name>Nexus</name><url>http://nexus.medcrab.com/content/groups/public/</url> </mirror> </mirrors>

mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址,所以如果settings.xml 中配置了mirror那么项目中的pom.xml Repository配置无效

标签里面放置的是要被镜像的Repository ID

Maven还支持更高级的镜像配置:

<mirrorOf>*</mirrorOf> 匹配所有远程仓库。 <mirrorOf>repo1,repo2</mirrorOf> 匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。 <mirrorOf>*,!repo1</miiroOf> 匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。

maven Nexus 私库安装使用总结相关推荐

  1. Maven Nexus 私库的搭建

    最近需要在服务器搭建私库.就写下可能以后用得到. 具体用到 Maven和Nexus3.X. maven-3.3.9 nexus-3.10.0-04 (楼主配置): maven 的安装就不介绍了. 一. ...

  2. Maven私库安装与配置

    前言 项目开发时,一般采用Maven来进行项目构建,管理,jar包下载,项目组开发人员开发时,只要在项目的pom.xml文件中,添加如下pom.xml信息从公共的库中下载相关的Jar包以及依赖Jar包 ...

  3. Maven发布jar包到Nexus私库

    Nexus2可以通过管理界面来上传jar包到私库中,而最新的Nexus3却找不到了上传界面,只能通过以下方式来发布到私库. 发布第三方jar包 这种情况是maven远程仓库没有,本地有的第三方jar包 ...

  4. Maven精选系列--发布jar包到Nexus私库

    转载自 Maven精选系列--发布jar包到Nexus私库 Nexus2可以通过管理界面来上传jar包到私库中,而最新的Nexus3却找不到了上传界面,只能通过以下方式来发布到私库. 发布第三方jar ...

  5. linux安装nexus私库

    一.linux安装nexus 1.创建文件夹并进入该目录 cd /usr/local && mkdir nexus && cd nexus 2.下载nexus安装包 w ...

  6. 搭建Nexus私库使用

    maven提供了开发人员的方式来管理: 1)Builds 2)Documentation 3)Reporting 4)Dependencies 5)SCMs 6)Releases 7)Distribu ...

  7. maven中央私库的搭建和项目的引用

    这里写自定义目录标题 下面是maven私库的搭建和项目的引用 首先在官网下载nexus的2.0或者3.0版本 下图标注的红色框内的几种库的级别需要解释一下 重点是配置 maven的settting.x ...

  8. nexus私库中的releases与snapshots区分

    一 概述 releases库是用在正式环境,上传的是稳定版本的代码,snapshots库是用在测试环境,上传的是测试非稳定的代码,这些代码可能还是在开发中. 二 如何区分 在maven deploy的 ...

  9. Maven私库的安装与使用

    文章目录 一.简介 需要安装的软件 文件的安装包 二.安装JDK 三.安装Maven 1.解压文件 2.Maven环境变量配置: 3.查看版本号 四.安装Nexus Maven私库 1.解压文件 2. ...

最新文章

  1. nginx proxy_next_upstream导致的一个重复提交错误
  2. 返回一个二维整数数组中最大联通子数组的和
  3. 记录皮尔逊相关系数-相似性比较算法
  4. react学习(41)----react中的jsx简介
  5. PostgreSQL 12系统表(2)pg_tables
  6. 配置Hibernate二级缓存步骤
  7. 铁大Facebook——十天冲刺(4)
  8. matlab报错找不到icuuc54.dll解决办法:
  9. Centos7安装iNode客户端
  10. 【JavaScript游戏开发】使用HTML5 canvas开发的网页版中国象棋项目
  11. 轻松入门腾讯云COS部署 + 配置CDN
  12. 前端性能优化gzip压缩
  13. com组件 的劫持_IE首页被劫持跳转问题的解决方案
  14. 【Pixel刷机】记录一次Pixel 2 刷机, root
  15. 怎样破解网页禁用鼠标右键
  16. android apk的md5值,android 获取apk md5值
  17. android shell du,Linux du 命令 command not found du 命令详解 du 命令未找到 du 命令安装 - CommandNotFound ⚡️ 坑否...
  18. 写给大家看的Web设计书:第3版(世界级设计大师指点迷津)(全彩印刷)
  19. LR的极大似然以及非线性
  20. Katalon Studio的下载和安装

热门文章

  1. 速锐得解码理想汽车L8方向盘转向角度应用随动大灯照明升级
  2. maven package 时报错 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test
  3. 从三只松鼠初探互联网战略
  4. 射频通路 隔直_偏置电路及其构成的射频功率放大器的制作方法
  5. 苹果单季营收818亿美元:Mac与iPad表现欠佳 市值跌破3万亿美元
  6. Spring指南之使用Spring缓存数据(Spring Framework官方文档之缓存抽象详解)
  7. vant里面怎么使用import引用_Vant 的引入及使用
  8. vant 滚动穿透问题
  9. HTML img标签align属性
  10. 华为思科基础配置笔记