背景:
私服:私有服务器,是公司内部Maven项目经常用到的私有仓库。Nexus就是一款常用的私用Maven服务器,一般是公司内部使用。
下载地址是: 默认本地地址:
默认登录账号:admin/admin123 登录后为安全起见,可自行修改帐号。目前选择版本:nexus-2.8.0-05。
作用:
Nexus常用功能:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
本地开启Nexus服务后访问url地址http://localhost:8081/nexus/,登录后就可以访问Nexus了。
一般用户访问最为频繁的就是左侧菜单栏的Repositories菜单了。
一般用到的仓库种类是hosted、proxy。
hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包等。
proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。
如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就会去远程仓库下载依赖,这些远程仓库就是proxy。
仓库类型:
hosted 内部项目的发布仓库
releases 内部的模块中release模块的发布仓库 snapshots 内部的模块中snapshots模块的发布仓库 3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去 proxy 从远程中央仓库中寻找数据的仓库 group 组仓库,用来方便我们开发人员进行设置的仓库maven项目索引:
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能保存后,后台会有一个下载任务,下载完成后,Maven索引就可以使用了,例如在搜索框中输入spring-core
可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息,如下指定私服仓库
<repositories>
<repository> <id>nexus</id> <name>nexus</name> <url>http://192.168.1.211:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>指定插件仓库
<pluginRepositories>
<pluginRepository> <id>nexus</id> <name>nexus</name> <url>http://192.168.1.211:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository></pluginRepositories>
pom文件配置完成后,当Maven项目构建的时候就会从私服上下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settings.xml文件。
修改settings.xml为:激活profile:
之后所有本机的Maven项目就在私服下载组件。
项目发布到私服,要settings.xml中配置发布权限
然后在控制台运行 mvn clean deploy 命令,进行项目发布
在控制台发布成功
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目。宿主库——3rd party
假如我们下载了mysql的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd party,填写好相应的GAV之后,最后在最下面,选择Artifact Upload上传至宿主空间显示上传成功
随后在Browser Index选项卡中,点击刷新后,继可看到刚刚上传的mysql构件
至此,Nexus搭建的整个过程就算完成了。