nexus仓库类型_Nexus仓库搭建及配置详解

nexus仓库类型_Nexus仓库搭建及配置详解
Nexus仓库简介
Nexus 是Maven仓库管理器,如果你使⽤Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是⼀个好的做法,你应该在本地架设⼀个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满⾜这样的需要。此外,他还提供了强⼤的仓库管理功能,构件搜索功能,它基于REST,友好的UI是⼀个extjs的REST客户端,它占⽤较少的内存,基于简单⽂件系统⽽⾮数据库。这些优点使其⽇趋成为最流⾏的Maven仓库管理器
Nexus下载和安装
Nexus提供了两种安装⽅式,第⼀种是内嵌Jetty的bundle,解压到安装⽬录中就能直接运⾏;第⼆种⽅式是WAR,将其发布到web容器中即可使⽤。Nexus要求jdk版本为1.7(若版本不对,请调整环境变量JAVA_HOME指向jdk1.7的⽬录,
建议安装2.0以上版本bundle版本)。
本项⽬选择的是第⼀种安装⽅式,下载完nexus之后,将压缩包解压到你想要安装的⽬录即可。解压完成后,会得到如下两个⼦⽬录(例如Nexus版本为2.7.0):
l nexus-2.7.0-06/:该⽬录包含了Nexus运⾏所需要的⽂件,如启动脚本,依赖jar包等。
l sonatype-work/:该⽬录包含了Nexus⽣成的配置⽂件,⽇志⽂件,仓库⽂件等。
⽤户只需调⽤对应操作系统的脚本就可以启动Nexus,本⽂主要介绍主流的Windows和Linux平台上的启动⽅式,详细信息如下:
Ø Windows系统:
1. ⽤户需要进⼊到nexus-
2.7.0-06/bin/jsw/⽬录,根据操作系统类型选择⽂件夹,进⼊后双击⾥⾯的console-nexus.bat启动Nexus 。
要停⽌服务,可以在命令⾏按:Ctrl+C键。例如,Win7 64位系统,选择windows-x86-64中的console-nexus.bat启动Nexus。
2. 在nexus-2.7.0-06/bin/jsw/windows-x86-64中还有其他的⼀些脚本:
² install-nexus.bat:将Nexus安装成Windows服务;
² uninstall-nexus.bat:卸载Nexus
Windows服务;
² start-nexus.bat:启动Nexus
Windows服务;
² stop-nexus.bat:停⽌Nexus
Windows服务;
Ø Linux系统:
1. ⽤户需要进⼊到nexus-
2.7.0-06/bin/jsw/⽬录,根据操作系统类型选择⽂件夹,进⼊后然后运⾏如下命令:$ ./nexus console。如果需要停⽌Nexus,可以使⽤Ctrl+C 键。例如:Ubuntu32位系统,只需进⼊到nexus-2.7.0-06/bin/jsw/linux-x86-32/,然后运⾏上⾯的命令即可。
2. 除console之外,Nexus的Linux脚本还提供如下的命令:
² ./nexus start:启动后台Neuxs服务;
² ./nexus stop:停⽌后台Neuxs服务;
² ./nexus status:查看后台Nexus服务的状态;
² ./nexus restart:重新启动后台Nexus服务;
关于Bundle安装的⼀个常见问题是端⼝冲突。Nexus Bundle默认端⼝是8081,若端⼝已被占⽤或希望使⽤其他端⼝开放Nexus服务,可以编辑⽂件nexus-2.7.0-06/conf/nexus.properties,到属性application-port将默认值8081改成其他端⼝号,然后保存该⽂件,重启Nexus即可。
Nexus仓库初始页⾯,如下图所⽰:
仓库简介和配置
Nexus⽬录结构
Nexus仓库初始页⾯如上图所⽰,主要信息如下:
⼀、
左侧包含多个菜单,主要使⽤有以下两个菜单:
1、
“Repositories”,点击后显⽰所包含的所有仓库信息;
2、
“Advanced Search”,点击后进⼊搜索页⾯,可根据关键字搜索jar等;
⼆、
点击“Repositories”后,显⽰所有的仓库信息,仓库类型包含:
l Hosted:本地仓库,可部署⾃⼰的构件到这类型的仓库。⽐如公司的第⼆⽅库;
l Proxy:代理仓库,被⽤来代理远程的公共仓库,如maven中央仓库;
l Group:仓库组,⽤来合并多个hosted/proxy仓库,当项⽬需要引⽤多个repository资源时,只需要将这些资源放到⼀个group中,引⽤这⼀个group即可;scm文件
三、
Nexus中⾃带的仓库:
1)
Maven central是Maven的中央仓库;
2)
central是⼀个代理仓库;
3)
Releases是⽤来存放⾃⼰项⽬中发布的构建, 通常是Release版本的;
4)
Snapshots是发布那些⾮release版本, ⾮稳定版本;
5)
3rd Party是⼀个第三⽅库,可以添加⾃⼰的第三⽅库;
四、
Maven 仓库组:
仓库组,即将多个仓库划分组管理。当需要引⽤多个仓库时候,若将这些仓库加⼊到⼀个仓库组中,那么在l中,只需要引⽤这个仓库组即可。
Nexus中预设了2个仓库组:public repositories和public snapshot repositories。仓库组默认包含本地仓库Releases,
snapshots, 3rd party和代理仓库Maven Central。可在Configuration配置页添加仓库到这个仓库组。
在Maven 中使⽤Nexus
为了能让本机所有的Maven项⽬都使⽤Nexus本地仓库,需要对l⽂件进⾏修改,但l并不⽀持直接配置repositories 和pluginRepositories,因此需要使⽤Maven提供的Profile机制,将仓库配置放到l中的Profile中。代码清单如下:
该配置中使⽤了⼀个id为repository-local的profile,这个profile包含了相关的仓库配置,同时配置中⼜使⽤activeProfile元素将repository-local这个profile激活,这样当执⾏maven构建的时候,激活后的pro
file会将仓库配置应⽤到项⽬中去。repositories和pluginRepositories标签分别是仓库及插件仓库配置,它们的id都为nexus,url指向仓库访问地址,如下图所⽰。配置仓库及插件仓库的⽬的是开启对快照版本下载的⽀持,当maven需要下载发布版或快照版构件的时候,它会⾸先检查nexus,看该类型的构件是否⽀持。
在项⽬中使⽤nexus查依赖包
在项⽬中需要查nexus仓库中的jar包,步骤如下:
Ø 登陆到nexus的web管理页⾯,选择左侧的“Advanced
Search”进⼊到搜索页⾯,如下图:
Ø 在上图中的搜索框中,输⼊jar包的名称,点击搜索,会列出查询结果列表,选择某⼀个结果,则会在最下⾯显⽰它的具体信息,如下
图:
Ø 选到⾃⼰所需的jar后,选择上图右下⾓区域的tab选项“Maven”按钮,将XML对应的⽂本框内容复制粘贴到项⽬的l⽂件中<
dependencies> dependencies>标签中即可。如下图:
部署编译完成的jar到Nexus仓库
在使⽤maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,这时可以利⽤Nexus对不同状态的版本进⾏管理。Nexus仓库包含两种,snapshot快照仓库和release发布仓库。snapshot快照仓库⽤于保存开发过程中的不稳定版
本,release正式仓库则是⽤来保存稳定的发⾏版本。
项⽬中使⽤maven过程中,maven2会根据模块的版本号(pom⽂件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在 mvn
deploy时会⾃动发布到快照版本库中;如果是正式发布版本,那么在mvn deploy时会⾃动发布到正式版本库中。
具体操作步骤如下:
1.
在maven的l增加认证信息,认证信息包含:对应仓库的id,登录⽤户名/密码,如下图:
2.
在项⽬的l增加认证信息,认证信息包含:对应仓库的id,name,url,注:server
的id要与repository的id保持⼀致。如下图:
3.
修改好配置后,执⾏下maven的 deploy 即可把新的 jar 部署到Nexus上。
新建仓库
根据项⽬的需求,可⾃定义多个仓库。操作步骤如下:
1)
点击“Repositories”进⼊仓库信息页⾯,显⽰所有的仓库信息,同时可对仓库进⾏新增、删除、更新索引、修改信息等操作。如下图:
点击“+”号按钮,选择仓库类型:group,新增public-maven-plugin-repositories仓库,填写配置参数,然后点击保存即可。具体配置信
息如下:
3)
点击“+”号按钮,选择仓库类型:hosted,新增maven-plugins仓库,填写配置参数,然后点击保存即可。具体配置信息如下:
添加第三⽅插件
添加第三⽅jar包和maven插件⽂件有两种⽅式:
1:通过web系统的管理界⾯添加;
2:直接拷贝⽂件夹放到对应的Nexus仓库的⽂件中;
通过web系统的管理界⾯添加
通过Nexus系统界⾯,向3rd Party第三⽅仓库添加jar包,具体步骤如下:
1、
点击“Repositories”进⼊仓库信息显⽰页⾯,选中“3rd Party”,并在最下⾯的Tab框中选择“Artifact Upload”,显⽰页⾯如下:
2、
在上图所⽰的页⾯中,需要进⾏以下操作:
第⼀步,“GAV Defintion”下拉框选择:“GAV Parameters”;
第⼆步,输⼊group(分组id,如com.anxin)
artifact(唯⼀标识,不可重复) version(版本号) 等信息,也可以直接点击Select Atrifact(s) to Upload…按钮,那么这三个信息会默认为jar包的原始信息(但要勾选 Auto Guess)。
第三步,点击“Select Atrifact(s)
to Upload…”按钮,将所需要上传的jar包上传到本系统,当上传完毕后,会⾃动填充Filename,Classifiler,Extension三个输⼊框;
第四步, 点击“Add Atrifact”按钮,会⽣成信息填充到Atrifact⽂本框中,如下图所⽰:
第五步,点击“Upload Atrifact(s)”按钮,上传jar包到第三⽅库。
拷贝⽂件的⽅式
Maven插件⽂件
Nexus中⽤来存放第三⽅jar包的仓库是thirdparty仓库,若Nexus安装路径为:
/Users/choice/developTools/nexus/nexus-2.14.3-02-bundle
则thirdparty仓库所在的⽂件路径:
/Users/choice/developTools/nexus/nexus-2.14.3-02-bundle/sonatype-work/nexus/storage/thirdparty
由于每个maven插件都有唯⼀的坐标信息,因此插件⽂件需要严格按照⾃⼰的坐标信息来选择对应的⽂件⽬录存放。maven插件的完整存放路径为:thirdparty仓库⽂件⽬录 / 插件坐标信息对应的⽂件⽬录。
例如,上传maven-scm-plugin插件,具体的操作步骤如下:
1.
查看maven-scm-plugin插件的坐标信息,打开maven-scm-plugin⽂件夹并选择进⼊1.7⽂件夹(1.7表⽰:该插件的1.7版本,若存在多个版本,任意选择⼀个打开进⼊即可),然后查看⾥⾯的maven-scm-plugin-1.7.pom⽂件。该pom⽂件中包含有插件的坐标信息,如groupId,artifactId,version等信息。查看插件坐标信息的操作如下图所⽰:
使⽤⽂本编辑器打开maven-scm-plugin-1.7.pom,到/project/groupId的属性值,该属性值信息与插件的存放⽬录相映射。例如:maven-scm-plugin插件的groupId的属性值为:org.apache.maven.plugins,则对应的⽂件存放⽬录:
org/apache/maven/plugins/,那么该插件的完整存放路径为:
/Users/choice/developTools/nexus/nexus-2.14.3-02-bundle/sonatype-work/nexus/storage
/maven_plugins/org/apache/maven/plugins/
3.
根据第2步操作得到的插件⽂件存放路径,进⼊并打开该路径下的最后⼀层⽂件夹。若不存在该⽂件夹,则需要按照该路径的⽬录层级结构⼿动创建缺少的⽬录⽂件。该路径下的最后⼀层⽂件夹信息如下图所⽰:
4.
将需要上传的插件:maven-scm-plugin整个⽂件夹内容全部拷贝到第3步操作所打开的⽂件夹中。若插件⽂件已存在,则选择合并⽂件夹操作。插件⽂件上传完毕后,需要更新Nexus的索引信息,具体操作参考2.2.3。
jar⽂件
nexus仓库存放jar⽂件的路径,例如安装路径为
/Users/choice/developTools/nexus/nexus-2.14.3-02-bundle
则存放jar⽂件的路径如下:
/Users/choice/developTools/nexus/nexus-2.14.3-02-bundle/sonatype-work/nexus/storage /thirdparty/
进⼊到以上的⽬录⽂件中后,将需要上传的jar⽂件拷贝进去即可。(注意:尽量不要将 plugins⽂件复制进去)
更新索引
将所有的maven插件⽂件和jar⽂件都复制完毕后,需要更新仓库的索引信息。登陆Nexus仓库的Web系统,点击“Repositories”进⼊所有仓库信息,进⾏以下两部操作:
1.
选中“3rd party”,选择最下⾯的Tab选项框中的“Browse Storge”点击“”按钮,选择“Browse Index”点击“”按钮,如图所⽰:
2.
选中“public-maven-plugin-repository”和“public-repository”仓库,分别右键点击“Repair Index”和“Update Index”,如图
所⽰:
查看上传的⽂件
待第三⽅⽂件上传完毕后,可以到搜索界⾯,搜索刚上传的第三⽅⽂件,查看名称和版本是否正确,如下图所⽰:
仓库移植
·
将原有nexus仓库中的⼯作⽬录(sonatype-work)全量copy
·
在新创建的nexus仓库中创建与原有仓库相同类型的仓库(只创建想要移植的仓库)
·
将copy出来的⼯作⽬录 sonatype-work/nexus/storage ⽬录中的仓库缓存copy对应的新的⼯作区⽬录。
·

本文发布于:2024-09-22 17:37:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/381757.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:仓库   信息   插件   配置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议