Nexus3.x安装及配置
引言
搭建maven私服主要是为了方便在一个团队中使用maven中央仓库没有的jar包,这些非中央仓库的jar包可能是自己团队开发的公共依赖jar包,可能是第三方私有的认证相关jar包,特殊的还有oracle的驱动jar包,下面是使用Nexus搭建maven私服及私服使用
Nexus3.x安装及配置
前置条件要求存在jdk1.8的环境
下载
这里之所以要特地提下下载是因为这个东西是真难下,我的电脑本身一直没有安装过专门的下载工具(度盘不算),一般下载都是走网盘或者浏览器直接下载,这次无论度盘的离线下载还是浏览器下载都非常慢甚至下载失败(100M光纤),在服务器上使用wget同样很慢,最后安装了迅雷使用迅雷下载后速度快很多,看来下载确实需要专业的下载工具,下载完成后上传到服务器上即可,当然也可以直接在服务器上使用wget下载,如果不嫌弃下载的慢的话:
官方下载页:
https://www.sonatype.com/download-oss-sonatype
实际资源地址
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.10.0-04-unix.tar.gz
安装及配置
#解压
tar -zvxf nexus-3.10.0-04-unix.tar.gz
#解压的文件夹移到nexus(自动创建)
mv nexus-3.10.0-04/ /usr/local/nexus
#防火墙开启8081端口,该端口是nexus的默认端口(在/usr/local/nexus/etc/nexus-default.properties文件中)
vi /etc/sysconfig/iptables
# 在打开的文件中加入如下内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT
#启动 ps 我安装时第一次启动使用./nexus start 访问不到web页面,使用run命令可以,之后使用start也可以了
./nexus run &
#启动成功会有如下信息
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
上面启动成功后会警告不要使用root用户启动,这里可以新建一个用户,也可以指定root用户启动,使他不出现警告,下面配置指定root用户启动
#该文件在bin目录下和启动程序nexus同级
vi nexus.rc
run_as_user=root
手动更新索引(可选)
我这里没有下载索引,以前配置过nenus2.x时下载过全部索引,很大很慢,下载了一晚上,不下载索引并不影响使用,这里会同步当前项目使用的依赖到私服的索引中,有新的依赖从私服中获取也会更新对应的索引,下面介绍一种离线安装的方式
前往maven中央仓库下载 indexer-cli-5.1.1.jar 解压工具包
下载离线索引文件
nexus-maven-repository-index.gz
nexus-maven-repository-index.properties
将3个文件放在同一目录下解压
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
拷贝索引
nexus2.x拷贝到{nexus-home}/sonatype-work/nexus/indexer/central-ctx
nexus3.x拷贝到/sonatype-work/nexus3/blobs/default,3.x我没尝试过参考这篇博客
web界面
访问web界面,使用默认管理账号admin/admin123登录
http://192.168.16.30:8081/仓库浏览在左侧菜单栏Browse,这里有多种仓库,相比于nexus2.x精简了很多仓库
nexus仓库类型
Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的
所有仓库资源,访问顺序取决于配置顺序3.x默认Releases,Snapshots,Central,可在web页面配置
在web界面点开 Hosted:私有仓库,专门用来存储我们自己生成的jar文件
3rd party:未发布到公网的第三方jar (3.x去除了)
Snapshots:本地项目的快照仓库
Releases: 本地项目发布的正式版本 Proxy:公网上发布的jar 例如:spring
Central:中央仓库
Apache Snapshots:Apache专用快照仓库(3.x去除了)
配置Releases版本可重复上传
点击图片画框部分配置Releases: Deployment pollcy --> Allow redeploy


使用nenus本地maven配置
全局配置下载依赖(即项目pom无需配置)
在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置
<profiles>
<profile>
<id>mycof</id>
<repositories>
<!-- 私有库地址-->
<repository>
<id>nexus</id>
<url>http://192.168.16.30:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<pluginRepository>
<id>nexus</id>
<url>http://192.168.16.30:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
激活使用上面的配置
<!--激活profile-->
<activeProfiles>
<activeProfile>mycof</activeProfile>
</activeProfiles>
指定镜像代理为我们的私服
<mirror>
<id>nexus-myself</id>
<!--*指的是访问任何仓库都使用我们的私服-->
<mirrorOf>*</mirrorOf>
<name>Nexus myself</name>
<url>http://192.168.16.30:8081/repository/maven-public/</url>
</mirror>
单独项目下载依赖(即项目pom文件中配置)
这种配置是修改单个项目的pom文件,无需修改maven的setting配置(尽管如此说,但是如果setting.xml中配置了mirror标签,并且mirrorOf为*或者私服地址,还是会被拦截,被代理指向代理地址)
<repositories>
<repository>
<id>nexus</id>
<url>http://192.168.16.30:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
建议使用全局的setting配置,一个项目组共用一个maven的setting配置,项目中就无需配置下载相关的私服仓库配置
使用私服后仓库访问顺序

上传jar包配置
对于中央仓库没有的jar包,需要我们自己将jar包发布到私服中去,其中jar包主要分为两类,一类是本地自己开发供给项目组其余同事使用,这种直接配置项目的pom文件和maven的setting文件,之后deploy发布即可发布到,另一类是第三方jar包,可以直接使用web页面上传并设置对应GAV即可
本地maaven开发的项目上传配置
maven的setting文件配置
这里要配置配置上传用户及仓库信息,我这里直接使用了admin用户,在nenus2.x中还内置了一个deployment/deployment123用户,在3.x该用户被移除了,这里可以自己配置角色和用户,我就直接使用admin用户了<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
项目中的pom文件配置
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.16.30:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.16.30:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
执行maven的deploy命令
这是myeclipse中上传本地项目jar到私服,IDEA中更为简单直接点击maven周期中的deploy即可

出现uploading信息并且没报错说明上传成功

到对应仓库查看

注意:
这里只有Snapshot的仓库上传成功,Release仓库并没有上传成功,这是因为版本号名称结尾有SNAPSHOT,默认以这个结尾是不会上传到Release仓库去的,去除就会上传到Release仓库且不会上传到快照仓库
Release仓库默认不支持重复发布,可配置
注意setting中server标签下的id要和pom文件中仓库配置的id相同,即指定上传到哪个仓库
第三方jar包上传
对于第三方jar包的上传采用nenus提供的web界面上传,上传成功后需要使用该jar包的话,依赖中填写自定义的GAV即可

Nexus3.x安装及配置的更多相关文章
- Centos7下Nexus3的安装和配置
参考文档:https://help.sonatype.com/repomanager3 1.要使用nexus服务需要安装jdk和maven 1.1.jdk下载地址:https://www.oracle ...
- windows系统nexus3安装和配置
一.前言 为什么要在本地开发机器上安装nexus?首先声明公司内部是有自己的nexus仓库,但是对上传jar包做了限制,不能畅快的上传自己测试包依赖.于是就自己在本地搭建了一个nexus私服,即可以使 ...
- maven私服nexus3.9安装配置
maven私服nexus3.9安装配置 私服介绍 私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建.有了私服之后,当 Maven 需要下载构件时,直接请求私服 ...
- JDK安装与配置
JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- 烂泥:redis3.2.3安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自 ...
- mysql源码包手动安装、配置以及测试(亲测可行)
笔记编者:小波/qq463431476博客首页:http://www.cnblogs.com/xiaobo-Linux/ 记下这篇mysql笔记,望日后有用! redhat6采用centos yum源 ...
- 环境搭建系列-系统安装之centos 6.5安装与配置
按照国际惯例,系列目录先奉上: 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭 ...
- ZooKeeper安装与配置
一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...
随机推荐
- Java静态代码块与非静态代码块
静态代码块,格式是 static{ },随着类的加载而加载,且只执行一次. 在程序中,执行的优先级最高. 非静态代码块,格式是{ },在创建对象的时候运行(即new一个对象的时候),每创建一次对象就执 ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- leetcode实战
leetcode记录 两数之和 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案. ...
- HDU 5616 Jam's balance(Jam的天平)
HDU 5616 Jam's balance(Jam的天平) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K ...
- Drools+springboot
查看我的github, 后续会陆续补充文档和Drools技术 https://github.com/zongheng14/insurance-rules
- OpenGL.Tutorial03_Matrices_测试
1. 2. // ZC: 工程-->右键-->属性--> 配置属性: // ZC: C/C++ -->常规-->附加包含目录,里面添加: // ZC: E:\OpenGL ...
- Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app
出现的问题: Error:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency ...
- python 等频率切分数据
小编最近入坑风控,在工作中需要对数据进行等频率切分,也就是将数据划分成几段,在每段中,数据的出现频率,出现次数是大致相同的,让数据集在每段上呈现出分布均匀的趋势. 小编先是想到df.describe ...
- jquery 判断浏览器版本
如果你也是Jquery最初的使用者,那么你一定经历过这样判断浏览器的时代:$.browser.msie && $.browser.version,你目前使用的组件里可能还有应用.但是J ...
- AutoLayout的坑
本文投稿文章,作者:MangoMade(简书) AutoLayout非常强大也非常易用,可读性也很强,加上各种第三方AutoLayout库,让你布起局来犹如绷掉链子的狗!根本停不下来!以前的 1 la ...