Maven搭建私服

为什么要搭建私服?搭建私服有什么好处?

以我最近技术调研和相关的使用为起点概述:

首先说明,为什么要搭建私服?

搭建私服的目的是,通常企业项目开发,特别是使用maven作为项目管理,现在非常流行使用maven,包括我和我的同学及其朋友相关的公司,它们公司都用maven构建项目。因为jar包统一方便管理。搭建私服的目的,也就在于管理Jar包。就好比作为运维的,特别是一些大公司,通常都会有公司自己专门的rpm软件包管理仓库,同时maven也是如此。

通常情况下,只要你在对应的pom.xml文件中引入你的私服路径,那么,项目下载对应的jar包,会优先去私服下载,私服没有再去公共仓库,也就是maven仓库。

搭建私服的好处,除了方便管理jar包,减少项目开发时,引入jar包冲突问题,在这家公司开发了好几个项目,发现遇到除代码逻辑或者业务方面的问题之外,遇到比较多的就是jar包冲突问题,maven有一个叫依赖传递的特性,也就是比如下图所示:

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,如图所示:

Maven搭建私服

(4)修改完毕后,启动nexus

进入bin目录下执行 ./nexus start

会出现:

Starting Nexus OSS...
Started Nexus OSS.

在浏览器输入:http://ip:8081/nexus

登录nexus,右上角Log In,默认登录用户名密码:admin/admin123

  登录之后,我们可以点击左边菜单栏Repositories进入详细配置

  可以自己重新创建一个私服配置,这里我们用系统在带的Public Repositories

Maven搭建私服

关于仓库的类型介绍  

  hosted 类型的仓库,内部项目的发布仓库

  releases 内部的模块中release模块的发布仓库

  snapshots 发布内部的SNAPSHOT模块的仓库

  3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去

  proxy 类型的仓库,从远程*仓库中寻找数据的仓库

  group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库

  但是需要将其他几个代理的库配置映射到Public中,分别将Apache Snapshots、Central、Codehaus Sanpshots下Download Remote Indexes选项选择【true】,保存即可,默认是false,如下图

Maven搭建私服

然后分别将Apache Snapshots、Central、Codehaus Sanpshots更新Index,在每一个库上面右键操作Repair Index

  Maven搭建私服

  最后将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。我认为也是版本问题的缘故。

上一篇:error link 2019 waveout


下一篇:Memcached,你懂的