为什么要搭建私服?搭建私服有什么好处?
以我最近技术调研和相关的使用为起点概述:
首先说明,为什么要搭建私服?
搭建私服的目的是,通常企业项目开发,特别是使用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。我认为也是版本问题的缘故。