环境:
Sonatype Nexus、
Ubuntu16.04、
Maven3、
Intellij Idea等
整体搭建思路:
在服务器A上部署Sonatype Nexus进行Maven仓库管理,在其他环境的项目中,使用Nexus上的Maven仓库;
为什么需要建立私有仓库?
博主在项目中,使用了私有的jar包,但是在maven仓库中肯定是找不到的;在博主的另一篇博文中,遇到这样的情况我选择了将jar包添加入本地maven仓库中再进行项目打包,这样能解决了问题,可是,这样的maven仓库却在我本地;当项目开发到一定程度,随之而来的私有jar包多了以后,会非常麻烦。所以,这时候就需要一个整个团队都能使用的专有maven仓库。
一、安装部署Sonatype Nexus
1)Nexus需要JDK环境
2)Nexus包
在这里下载了2.x版本的(这里是2.14.14-03,刚开始是下载3.x版本的,发现在ubuntu上启动有问题,一时半会还解决不了,就上2.x了)
sudo wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.4-03-bundle.tar.gz
下载完成后进行解压:
sudo tar -zxvf nexus-2.14.4-03-bundle.tar.gz
解压之后会有两个文件夹,简单解释
nexus-2.14.4-03:程序
sonatype-work:仓库
确保机器上已经装好JDK,并且配置好;
进入Nexus的bin目录,启动程序在里面;
cd nexus-2.14.4-03/bin/
其他两个文件不是很懂,不过猜一下nexus.bat应该是windows平台启动用的;
现在启动:
sudo ./nexus start
注意:这里启动的时候有警告:
WARNING - NOT RECOMMENDED TO RUN AS ROOT
解决方法1:
vim /etc/profile
在profile文件里追加,使用root用户启动
export RUN_AS_USER=root
使profile文件立即生效:
source /etc/profile
解决方法2:
直接在启动前指令输入(暂时):
export RUN_AS_USER=root
解决方法3:
在nexus-2.14.4-03/bin/nexus文件中设置root启动
vim nexus-2.14.4-03/bin/nexus
重新编辑23行:
RUN_AS_USER=root
编辑完成后,启动
这里一定看到
Started Nexus OSS.
才是真正启动成功。
Sonatype Nexus默认端口8081,初始密码admin/admin123
这里,博主在Nexus下的conf/nexus.properties文件中重新指定了port
并且!!!
为了局域网内都能使用Nexus仓库管理,还要在部署Nexus的服务器设置Nexus的端口开放!!!
设置防火墙的规则,允许8881端口进入
sudo ufw allow 8881
好,启动运行:
使用默认账号密码:admin/admin123
登录
二、配置私有仓库
点击Repositories
Nexus2.14.4-03下默认共有6个仓库,有个是我自己添加的所以,被窝马赛克掉了;
nexus的仓库类型分为以下四种:
group: 仓库组
hosted:宿主
proxy:代理
virtual:虚拟
首次登陆nexus后可以看到以下一个仓库组和多个仓库。
配置Central库
Download Remote Indexes设置为true
save
对Central右键更新索引一下
Repair Index
Update Index
然后我们再来看看索引更新怎么样了
哎哟喂,看到没?Browse Index下一堆依赖包什么的,美滋滋;正常获取maven依赖包的索引了;
(注意:如果索引一致无法更新,我这里配置了一个阿里云的maven仓库)
http://maven.aliyun.com/nexus/content/groups/public/
那么还没结束的;
配置一下public库
在Public Repositories中配置Configuration
从左边的Ordered Group Repositories 将Central弄到左边
save
Sonatype Nexus的部署启动搭建私有仓库就OK了。
不不不,还没结束,项目中还没用呢
如何在项目中使用我们自己搭建的maven私有仓库?
看图吧好嘛,写字有点乏:
在pom.xml中配置了仓库坐标(注意url那里)
项目使用的是Intellij Idea
快捷键ctrl + alt + s弹出Setting,找到Maven那里
看到我标注的地方就是我们刚刚添加的私有仓库地址,然后我们点击update按钮,updated字段那里出现更新时间了,或者说没显示error字样,那么我们的私有仓库已经能正常使用了。
参考资料: