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...
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。我认为也是版本问题的缘故。
Maven搭建私服的更多相关文章
- maven 搭建私服
博客参考 https://www.cnblogs.com/luotaoyeah/p/3791966.html 整理纯为技术学习 1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程 ...
- 与Nexus为Maven搭建私服
目录 Nexus 的概述 Nexus 安装与部署 Nexus 在 Windows 上安装与使用 安装 使用 Nexus 在 Linux 上安装与使用 Nexus 的概述 引用百度百科一段话 Nexus ...
- 使用Nexus2.x为Maven3.x搭建私服构件仓库
前言 在笔者的前一篇博文<Use Maven3.x>中,笔者详细的讲解了如何通过使用Maven3.x来构建及管理你的项目.其中笔者提到过些关于私服的概念,但却没有明确的对私服做出详细的阐述 ...
- maven nexus 私服的搭建学习
之前对maven有过初步的了解与认识,自己也创建过项目使用其来管理,但都是非常粗浅的操作,今天在高人的指点下,也学着在自己的电脑上搭建一个maven私服,虽然技术难度也不高,但为了更深层次的提高,这些 ...
- 本地用maven搭建SpringMvc+redis集成
---恢复内容开始--- 首先本地需要搭建私服,简单说一下搭建私服的步骤 1.为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而 ...
- linux上搭建私服
环境centos7 解压到/usr/localtar -zxvf /home/ckl/upload/nexus-2.14.3-02-bundle.tar.gz -C /usr/local/ 注意: 一 ...
- jenkins+git+maven搭建自动化部署项目环境
简介 折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...
- 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...
- 【maven + hibernate(注解) +spring +springMVC】 使用maven搭建项目
研究,百度,查资料+好友帮助,使用MyEcplise2015工具,通过maven搭建hibernate+springMVC+spring的项目,数据库采用MySql5.5 不过使用的版本会在项目搭建过 ...
随机推荐
- Expression<Func<T>>和Func<T>
以前用EF的时候,由于where的时候有Expression<Func<T>>和Func<T>两种查询条件,误用了Func<T>那个重载,后来还想通过f ...
- Java-函数式编程(二)Lambda表达式
本文首发:Java-函数式编程(二)Lambda表达式 “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lamb ...
- C# HmacSha512 与 java HmacSha512 加密
C# HmacSha512 与 java HmacSha512 加密. /// <summary> /// HmacSha512 加密 /// </summary> /// & ...
- CentOS7安装mongodb
1.下载mongodb的*.tar.gz安装包 2.移到centos7中并解压 tar -xzvf mongodb.tar.gz 3.配置环境变量 vim /etc/profile 添加如下内容: # ...
- (二)收集的MongoDB命令集合
一:针对整个数据库的 1."show dbs" 命令可以显示所有数据的列表. 2. "db" 命令可以显示当前数据库对象或集合. 3."use&quo ...
- 【代码笔记】iOS-给密码进行加密
一,工程图. 二,代码. #import "ViewController.h" #import "Base64CodeByteFunc.h" @interfac ...
- iTerm通过堡垒机自动登录服务器
为了保障网络和数据安全,越来越多公司使用堡垒机.iTerm作为一个好用的终端利器,要实现自动通过堡垒机登录服务器的方式有多种.下面我就来介绍一种通过expect脚本的方式完成配置. 第一步,进入/us ...
- MyEclipse中搭建Struts2开发环境
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53205941 冷血之心的博客) 在MyEclipse中如何搭建St ...
- 数组、ArrayList、链表、LinkedList
数组 数组 数组类型 不可重复 无序(线性查找) 可重复(找到第一个即可) 无序(线性查找) 不可重复 有序(二分查找) 可重复(找到第一个即可) 有序(二分查找) 插入 O(N) O(1) O( ...
- 从零自学Java-5.使用条件测试进行判断
1.使用if语句进行最基本的条件测试:2.测试一个值大于还是小于另一个值:3.测试两个值是否相等:4.使用与if语句对应的else语句:5.组合多个条件测试:6.使用switch语句进行复杂的条件测试 ...