作者:叩丁狼教育蓝雄威老师
一、Nexus 详细介绍:
Nexus是一个强大的maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。
二、为什么要使用Nexus
1.例如基金公司或者银行是不提供外网给项目组人员的,因此不能访问到Maven的远程仓库,但是希望项目Jar包可以通过Maven进行管理,此时就可以在局域网里找一台有外网权限的机器搭建Nexus私服,然后开发人员通过私服可以下载到远程仓库的Jar包。
2.如果公司有一些公共的代码需要打成jar包提供给其他的项目使用,这些jar包也想交给Maven管理,这时候我们就可以把这些公共的jar包上传到私服中,然后团队成员就可以在项目中通过Maven的方式添加改公共jar包的依赖。
三、基于CentOS7搭建Maven私服
1、环境准备:
操作系统: CentOS7
JDK版本: 1.8以上
Nexus版本: 3.13.0
2、安装包下载地址:
Nexus Repository Manager OSS 3.x - Unix
3、解压安装:
3.1 上传压缩包到Linux中.
3.2 使用命令解压到指定目录.
tar -zxvf nexu -C /usr/local/nexus3解压后目录如下:
3.3进入指定目录nexu:
3.4 进入bin目录,然后运行./nexus start
3.5运行命令后,界面显示如下,可以使用./nexus status显示运行状态
到这一步,我们的私服搭建其实就可以了,接下来我们设置一些私服的配置.Nexus是提供了一套基于ExtJS的可视化界面,我们可以再里面配置代理仓库以及管理自己第三方jar的仓库.
四、配置及仓库类型讲解
1.启动成功后,我们在宿主机中打开浏览器访问 出现如下界面说明,说明没问题了:
2.点击页面右上角的 Sign in 按钮,默认账号密码是: admin/admin123
3.登陆成功后点红色框中的按钮进行相关配置:
4.进入仓库之后操作如下:
仓库类型:
proxy:本地代理仓库,通常我们会部署自己的构件到这一类型的仓库。
hosted:代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库,阿里的镜像。
group:仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。
5.可以进入maven-maven-central 修改相关配置:
6.进入maven-public 仓库,复制地址:repository/maven-public/ 给别人使用需要把localhost修改成neuxs的服务器的IP地址.
访问repository/maven-public/ 说明Nexus 服务器搭建成功了.
五:导入第三方jar包到Nexus库中
公司里面有自己的公共代码库,如果希望交给Maven进行管理,可以搭建Nexus服务器,将公司的公共代码库的代码打成jar包,然后上传到Nexus私服服务器上,项目组的成员就可以在Maven项目中通过添加依赖的方式把公司公共库的jar包给关联到项目中.
在Nexus2的版本中是提供了服务器端可视化界面支持上传第三方Jar包的,但是Nexus3的版本中好像已经把该功能给阉割了.只能手动的通过命令行的方式将第三方的Jar包导入到私服中.其实也不难,比起Nexus2来说稍显复杂些.具体步骤如下.
1.首先在Nexus服务器配置了存放第三方Jar包的本地仓库hosted,如果已经配置,直接跳到第2步,如果没有配置,按如下配置,
1.1登陆Nexus服务器,创建仓库 Create repository
1.2选择仓库类型,选择maven2(hosted),本地仓库:
1.3给仓库起个名字,然后点击最下面的(图中没显示)的Create repository 按钮
1.4保存之后,在点击进入这个本地仓库,拿到该本地仓库的地址:
http://localhost:8081/repository/3rd_part/
待会后面执行命令的时候需要把localhost换成Nexus的服务器地址.
1.5去到仓库组maven-public中添加刚刚创建的本地仓库3rd_part:
接着将本地仓库3rd_part 加入到仓库组中:
到这一步就已经在Nexus服务器添加存放第三方Jar包的本地仓库
2.如下操作在项目组成员电脑操作都可以的.
找到.m2 或者 maven安装目录/conf 文件,找到里面的 <servers> 节点,添加如下配置:
<server> <id>thirdparty</id> <username>admin</username> <password>admin123</password> </server>id:待会输入命令的时候需要用到
username:表示Nexus服务器的登陆账号
password:表示Nexus服务器的登陆密码
2.打开CMD命令控制台,输入如下命令:
mvn deploy:deploy-file -DgroupId=cn.wolfcode -DartifactId=p2p -Dversion=1.0.0 -Dpackaging=jar -Dfile=D:\test\ -Durl=repository/3rd_part/ -DrepositoryId=thirdpartyDgroupId、DartifactId、Dversion:构成了该jar包在的坐标,自己起名字也是可以的.
Dpackaging:表示打包类型.
Dfile:表示需要上传的jar包的绝对路径.
Durl:私服上第三方仓库的地址,打开nexus——>repositories菜单,可以看到该路径。
DrepositoryId:服务器的表示id,就是我们在文件中配置的serverId。
执行成功表示已经上传到Nexus私服了
3.项目组成员就可以在自己项目中的文件中添加如下的依赖:
<dependency> <groupId>cn.wolfcode</groupId> <artifactId>p2p</artifactId> <version>1.0.0</version> </dependency>该Jar包就自动的关联到项目中了.