Maven搭建私服
为什么要搭建私服?搭建私服有什么好处? 以我最近技术调研和相关的使用为起点概述: 首先说明,为什么要搭建私服? 搭建私服的目的是,通常企业项目开发,特别是使用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... 在浏览器输入: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> ? 搭建私服参考链接为: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。我认为也是版本问题的缘故。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |