1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Nexus搭建Maven私服并使用私服

Nexus搭建Maven私服并使用私服

时间:2023-04-18 15:24:14

相关推荐

Nexus搭建Maven私服并使用私服

简单介绍

前言:我们常用的maven仓库有中央仓库(全球共用),私有仓库(公司内部共用),和本地仓库(个人私有).类似代码托管大概有GitHub(全球代码托管)和gitee(国内版代码托管)和Gitlab(公司私有代码托管),所有一般公司要内部搭建的往往就是内部代码托管(Gitlab)和内部jar包托管(nexus私服),这里演示的主要是nexus私服的搭建,主要目的是学习并可以模拟maven上传自己的jar包到公司开发流程.

中途遇到困难结合百度,这里提供一些解决方案,仅供参考(/qq_34531925/article/details/80165977)

私服的搭建

安装私服软件nexus

前提本地JDK和maven都是安装好了的

首先安装或者搭建服务器自然需要软件的,那么nexus软件下载地址: /nexus/go

版本以nexus3.28.1-01为例当然是10月24号最新版

然后填写你的邮件(比如你的QQ邮箱)

下载软件

下载完成后直接解压到你需要的安装的文件夹(比如我的是D:\Asoftware\package\nexus)就行了,并配置环境变量

CMD启动即可nexus /run

等待启动成功

测试本地访问是否可以正常运行

首次访问http://localhost:8081/

点击右上角登录(弹框提示用户名是admin 密码在对应的文件夹,按照要求填写即可)

后续步骤提示可以重置密码(我直接习惯把密码也改成admin,这样方便一点)注意修改了后要记住它哦,原始密码文件会在你修改后自动删除正常登录后的界面

将nexus配置为系统服务,新开一个CMD窗口 命令 nexus.exe /install nexus (Could not open SCManager.是因为没有使用管理员CMD窗口) 查看一下Windows任务管理器,确认一下(已停止不用在意,继续下一步)

nexus软件目录介绍

如图所示

安装目录下大致介绍

bin 包含nexus的启动脚本和相关配置etc jetty、karaf等配置文件jre jre环境lib java架包库public 关于nexus应用在本地跑起来所需要的资源system 应用所有的插件和组件LICENSE.txt 和 NOTICE.txt 版权声明和法律细则

数据文档目录大致介绍

blobs/ 创建blob的默认路径,当然也可以重新指定cache/ 当前缓存的karaf包的信息db/ OrientDB数据库的数据,用于存储nexus的元数据的数据库elasticsearch/ 当前配置的Elasticsearch状态etc/ 大概是运行时配置状态和关于资源库的自定义的相关的东西health-check/ 看目录,健康检查的相关报告的存储目录吧keystores/ 自动生成的关于资源库的ID主键log/ 运行实例生成的日志文件,也有日志文件的压缩包,貌似是每天都会生成日志文件,你可以定期删除老的日志文件tmp/ 用于存储临时文件的目录

nexus基本配置

修改软件端口号

nexus对maven仓库的配置

创建Blob Strores(可以不用配置)

在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。这一步非必须

配置Proxy Repository代理仓库

创建Proxy Repository代理仓库,创建 repository 创建成功后,之后打包的jar文件会在这个指定的路径下.

创建页面出来之后,页面上有三个框是必填的:

下图的一般选Mixed(包含SNAPSHOT版本和RELEASE版本),也可以根据你的需要

创建hosted repository宿主仓库

就是私服jar包放在电脑的那个位置(公司的话肯定是云服务器,这里模拟放在本机就行)

Hosted有三种方式:ReleasesSnapshotMixed(和上面类似)

Releases: 一般是已经发布的Jar包Snapshot: 未发布的版本Mixed:混合的

这个就是多几个备胎的意思,jar包在私服下载不了,可以直接选择其他镜像,下载jar包,和maven的setting配置镜像一个道理.

这里推荐几个远程仓库

jboss的maven中央仓库地址:/maven2/阿里云的maven中央仓库地址:/nexus/content/groups/public/apache的maven中央仓库地址:http://repo./maven2/

创建group repository仓库组

类似于把仓库都作为备胎,按照顺序依次使用

大概解释一下为什么要注意顺序

官方文档中建议:

It is recommended practice to place hosted repositories higher in the list than proxy repositories. For proxy repositories, the repository manager needs to check the remote repository which will incur more overhead than a hosted repository lookup.

希望将hosted repositories【宿主仓库】的顺序放在proxy repositories【代理仓库】之前,因为一个group【仓库组】中可以涵括这些宿主仓库和代理仓库。而一整个的group是作为一个public,一个接口给别人使用的。

所以当查找jar包的时候,如果代理资源库在前面,那就是先从远程去查找jar,而不是先从宿主仓库(本地仓库)去查找是否有jar

测试让 Maven 项目使用 Nexus 私服

idea设置 Nexus 为镜像地址

maven 下的setting.xml文件和你自己项目中的pom.xml文件的关系:

settting.xml文件就是本地电脑上的全局变量;而pom.xml文件就是局部变量。pom.xml文件对于项目来说,是优先使用的。然而pom.xml文件中如果没有指定jar要从哪里下载的话,也就是说没有配置镜像地址的话,当然只能去按照settting.xml中定义的地址去找了

http://localhost:9081/repository/myself_group/

配置maven的配置文件setting.xml

<!--自定义maven本地仓库地址(注意斜杆的方向哈)--><localRepository>D:/Aworkspace/mavennexus/nexusrepo</localRepository><!--nexus服务器(注意位置servers内)--><server> <id>nexus</id> <username>admin</username> <password>admin</password> </server> <server> <id>nexus-releases</id> <username>admin</username> <password>admin</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin</password> </server> <!--仓库组的url地址 id和name自定义,mirrorOf的值设置为central,写死的--> <mirrors><mirror> <id>nexus</id> <name>nexus repository</name> <url>http://localhost:9081/repository/myself_group/</url> <mirrorOf>central</mirrorOf> </mirror></mirrors>

idea搭建maven测试

(先随便创建一个maven项目,里面象征性写个实体类user) 查看pom配置的路径url

pom(注意里面配置的内容来源)注意要打包源码需要添加插件,否则下载源码的时候会出现

idea下载nexus私服仓库jar包源码失败.所以这里根据需要,一般还是选择待源码发布,不然人间下载你的jar包失败,读源码不爽

<distributionManagement><repository><id>nexus-Release</id><name>Nexus Release Repository</name><url>http://localhost:9081/nexus/content/repositories/Release/</url></repository><snapshotRepository><id>nexus-SNAPSHOT</id><name>Nexus Snapshot Repository</name><url>http://localhost:9081/nexus/content/repositories/SNAPSHOT/</url></snapshotRepository></distributionManagement><build><plugins><!-- 要将源码放上去,需要加入此配置 --><plugin><artifactId>maven-source-plugin</artifactId><version>2.1</version><configuration><attach>true</attach></configuration><executions><execution><phase>compile</phase><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build>

私服的增删改查(CRUD)

上传jar到nexus私服-新增

到配置的私服仓库查看一下

在私服控制台上再次确认一下 可以根据 artifactId 搜索 zxx-nexus (我的测试maven的artifactId )

到这里,基本上完成了所有的私服的搭建配置和maven项目结合,实现了一个完整的私服仓库(拉取私服jar不用展示了,因为没有什么不一样,和之前的maven逻辑一样,只是本地找不到jar包,之前是直接去中央仓库下载,现在只是maven先去私服看一下,没有再去中央仓库,所以这个是maven配置settings文件后自动做的,使用者不用去管哪些了).

nexus私服查看jar详情-查找

idea的maven项目在nexus私服下载jar

只需要在pom.xml添加相应的jar做表即可

测试使用

尝试下载jar源码(注意这个是在打包的时候配置了源码打包才行哈,就是那个pom配置了插件才行,不然无法下载jar包源码以为是私服授权或者其他哪里配置不对,其实不是,当然还是再次提醒setting文件要配置正确哈)

nexus私服jar包的删除-删除

上一步进入详情后,点击那个browse SNAPSHOT(s)后,进入

nexus私服jar包的修改

其实就是上传的时候升级版本号即可,并没有所谓的修改jar包,要修改GAV坐标,直接上传就行了,如果之前的坐标有改动,直接删除原坐标,新上传即可,这个只是为了强迫症完成增删改查的完整性

处理上传jar包到私服的细节问题

升级jar包版本,并上传到私服

修改了代码之后,必须新增版本号(哪怕只是添加一段注释,养成习惯),这个不存在jar包冲突的过程.(只有分布式开发的时候用户使用的jar版本不一致会导致jar包类,接口等代码不一致,这个不是maven私服的锅),遇到这种情况,需要大家讨论后选择对应版本的jar包即可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。