以前在一个公司使用过Nexus,那时还不知道这个是个什么玩意,最近公司要搭建自己的maven库,才知道以前用的东西叫nexus。
本教程基于win7和Nexus3.13版本,因为nexus2.x版本安装下可能会有不同,不做其他解释。
下载地址:https://www.sonatype.com/download-oss-sonatype
下载下来的压缩包解压后有两个文件夹:【nexus-3.13.0-01】 和【sonatype-work】,用cmd进入【nexus-3.13.0-01】文件夹下的bin目录,执行命令:【nexus.exe/run】启动nexus。(如果有需要,可以把nexus加入系统服务进程,让它开机自动启动)启动成功后如下图所示:
然后我们登录http://localhost:8081/ 就能够访问到nexus页面。
nexus的默认登录是:admin/admin123,登录成功后再在设置中可以看到nexus中的一些库信息:
其中红色框中的库是一开始就默认存在的,绿色框框是我后来自己添加的。一个是用来上传第三方jar包的第三方类库3rdPart,一个是用来获取阿里云镜像的链接库。
第三方类库3rdPart:Create repository的时候选择【maven2(hosted)】这一个,因为这个一个本地类库,具体参数如下:
最后一项Hosted要改成【Allow redeploy】可部署。
阿里云镜像库:Create repository的时候选择【maven2(proxy)】这一个,因为这个一个远程链接库库,具体参数如下:
名字自己随便起,知道就行了,关键是proxy的地址要用阿里云的maven镜像库,因为nexus默认的【maven-central】库,也是一个链接库,只不过他的默认地址是:【https://repo1.maven.org/maven2/】,从这里下载jar包可能会比较慢,所以才配置了阿里云的maven镜像库。
这里说一下nexus默认库,我个人理解,如有不对的地方,还请各位看官指出:
【maven-public】:类型是group,应该就是组概念,是其他库的一个集合体
【maven-releases】:对外正式发布的mavenjar包库
【maven-snapshots】:maven快照库,表明里面的jar包可能是正在开发版
在我们创建好自己的库后,要做一个操作:
我们要在【maven-public】设置的group中,把新建的两个库,从左边的Available中右移添加到Member中,同时我们发现还可以上下调换顺序,应该是在获取jar包时遵从优先原则,从上往下寻找。本人一开始没有添加,导致一直下载不到上传的jar包,猜想可能就是这个原因。
这一步通常来说很简单的,我们只要在主页upload中点击上传就行了,记得把最后pom文件的勾打上。
上传完成后是这个样子的:
怎么把服务器上的nexus和我们eclipse中的maven联系在一起呢?
找到你安装的maven,../conf/setting.xml文件中,把标签
nexus
nexus maven
*
http://192.168.1.19:8081/repository/maven-public/
这个时候,你就可以连接上nexus,从上面下载自己的jar包了。
同时,我们还可以打包发布自己的项目到nexus中变成jar包,供其他人直接调用,方法同样是修改setting.xml配置文件。在setting.xml中添加
user-release
admin
admin123
user-snapshots
admin
admin123
dev
nexus
http://192.168.1.19:8081/repository/maven-public/
true
true
dev
同时修改maven项目中的pom文件,添加:
user-release
user release version
http://192.168.1.19:8081/repository/maven-releases/
user-snapshots
user snapshots version
http://192.168.1.19:8081/repository/maven-snapshots/
id什么的都要注意保持一致,修改完之后通过在项目上右击:Run As→Maven build→Run
然后控制台会出现一系列log,直到出现:
说明已经成功了,这个时候去nexus上面找一下,就能看到我们刚刚build的包了:
如果出现maven build后控制台什么反应也没有的情况,请百度:Eclipse Maven Build命令执行无效解决方法?
这里给上其他博主的解决方法:https://blog.csdn.net/xiongyouqiang/article/details/78604630。
OVER!