为什么要搭建私服?搭建私服有什么好处?
以我最近技术调研和相关的使用为起点概述:
首先说明,为什么要搭建私服?
搭建私服的目的是,通常企业项目开发,特别是使用maven作为项目管理,现在非常流行使用maven,包括我和我的同学及其朋友相关的公司,它们公司都用maven构建项目。因为jar包统一方便管理。搭建私服的目的,也就在于管理Jar包。就好比作为运维的,特别是一些大公司,通常都会有公司自己专门的rpm软件包管理仓库,同时maven也是如此。
通常情况下,只要你在对应的pom.xml文件中引入你的私服路径,那么,项目下载对应的jar包,会优先去私服下载,私服没有再去公共仓库,也就是maven仓库。
搭建私服的好处,除了方便管理jar包,减少项目开发时,引入jar包冲突问题,在这家公司开发了好几个项目,发现遇到除代码逻辑或者业务方面的问题之外,遇到比较多的就是jar包冲突问题,maven有一个叫依赖传递的特性,也就是比如下图所示:
通常情况,这样我们有的时候只需引入几个依赖即可,因为那几个依赖里面已经包含了其他依赖。
这就是maven特性之一,也是为许多人津津乐道的,名曰:依赖传递。
下面进入如何搭建私服?
nexus官网最新下载地址为:https://www.sonatype.com/download-oss-sonatype?hsCtaTracking=920dd7b5-7ef3-47fe-9600-10fecad8aa32%7Cf59d5f10-099f-4c66-a622-0254373f4a92
旧版本下载地址为:
(1)下载
wget http://download.sonatype.com/nexus/oss/nexus-2.10.0-02-bundle.tar.gz
(2)解压
tar -zxvf nexus-2.10.0-02-bundle.tar.gz
(3)修改nexus文件
vim nexus
在启动文件nexus中增加nexus的启动用户,否则没权限启动,将报错如下:
WARNING - NOT RECOMMENDED TO RUN AS ROOT
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script
所以要解决此问题,需要在启动文件nexus,加上RUN_AS_USER=root,如图所示:
(4)修改完毕后,启动nexus
进入bin目录下执行 ./nexus start
会出现:
Starting Nexus OSS...
Started Nexus OSS.
在浏览器输入:http://ip:8081/nexus
登录nexus,右上角Log In,默认登录用户名密码:admin/admin123
登录之后,我们可以点击左边菜单栏Repositories进入详细配置
可以自己重新创建一个私服配置,这里我们用系统在带的Public Repositories
关于仓库的类型介绍
hosted 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
proxy 类型的仓库,从远程*仓库中寻找数据的仓库
group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
但是需要将其他几个代理的库配置映射到Public中,分别将Apache Snapshots、Central、Codehaus Sanpshots下Download Remote Indexes选项选择【true】,保存即可,默认是false,如下图
然后分别将Apache Snapshots、Central、Codehaus Sanpshots更新Index,在每一个库上面右键操作Repair Index
最后将Public Repositories操作Repair Index
然后接可以测试maven仓库了。
在项目中,引用maven仓库。则需要项目的pom.xml文件中添加如下:
<repositories>
<repository>
<id>thirdparty</id>
<url>http://yc520:8081/nexus/content/repositories/thirdparty</url>
</repository>
</repositories>
搭建私服参考链接为:https://www.cnblogs.com/candle806/p/4076325.html
私服上传第三方jar包参考链接为:https://blog.csdn.net/xiaodaiwang/article/details/78093591
我个人之前下载过最新版安装,总会出现不如人意的情况,甚至出现了生成hr开头的错误日志文件,通常这种错误日志文件是因为Java运行环境不足导致的。
但我换成低版本,而我的jdk仍然是8,而不是7或者6,也没有出现一些朋友所说的那样,jdk版本与私服+maven存在版本冲突问题。
本次我的环境为Linux(阿里云服务器,ubuntu16.04),maven3以上,jdk8。本人亲自搭建并测试上传jar,并引入jar。完全没问题。
不过本地window测试了下最新版,出现一些小问题导致本地window不能正常使用nexus。我认为也是版本问题的缘故。