Maven Nexus详解
一、简介
是种特殊的Maven仓库一般用于公司,比如三十个员工开发一个项目,需要每个人都联网去下载jar,每个人都很痛苦。此时公司可以搭建一个私服,让其中一人去私服下载jar,这样私服中就缓存了那些jar包,其他人在下载的时候就无需重新从远程仓库下载了,直接从私服缓存的地方拿下来即可。
Nexus可以做Maven私服,私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:
Apache基金会的Archiva、JFrog的Artifacotory和Sonatype的Nexus,Archiva是开源的,Artifacotory和Nexus的核心也是开源的。
如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。
可以理解为在本地局域网建立了一个类似中央仓库的处理器,我们开始将资料下载到中央服务器中,然后在本地maven项目中直接访问中央服务器即可,这样既
节省了网络宽带也会加速项目的开发进度,图如下展示:
二、安装
Linux(已验证)
插入Linux环境安装jdk步骤:
- 上传jdk的tar包:jdk-8u11-linux-x64.tar.gz
- 创建jdk安装目录:# mkdir -p /usr/local/jdk
- 解压安装jdk::tar -zxvf jdk-8u11-linux-x64.tar.gz -C /usr/local/jdk
- 查看是否安装成功:# java -version 未查看到jdk版本,需要配置环境变量。
配置jdk环境变量:# vi /etc/profile 在文件的最后一行添加如下内容:
#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.8.0_11
JRE_HOME=/usr/local/jdk/jdk1.8.0_11/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_H OME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
5.刷新配置:# source /etc/profile 再次查看jdk版本:安装成功!!!
1、首先确保有jdk环境:
使用wget命令下载 wget 想要下载nexus版本的地址:
#wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-03-bundle.tar.gz
2、ls看到下载的压缩包后解压到新建指定目录下:
# mkdir /usr/local/nexus
# tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C /usr/local/nexus/
# cd /usr/local/nexus
# ls
可以看到两个文件:nexus-2.11.2-03 sonatype-work
(一个 nexus 服务,一个私有库目录)
3、编辑 Nexus 的 nexus.properties 文件,配置端口和 work 目录信息
# cd nexus-2.11.2-03
# ls
# cd conf
# vi nexus.properties
1 2 3 4 5 6 7 8 |
# Jetty section application-port=8081 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus nexus-webapp-context-path=/nexus # Nexus section nexus-work=${bundleBasedir}/../sonatype-work/nexus runtime=${bundleBasedir}/nexus/WEB-INF |
4、编辑 nexus 脚本, 配置 RUN_AS_USER 参数
# vi /usr/nexus/nexus-2.11.2-03/bin/nexus
#RUN_AS_USER=
改为:
RUN_AS_USER=root
5、防火墙中打开 8081 端口 [etc目录通常放一些零散的配置文件]
# vi /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
保存后重启防火墙(即使防火墙开着也可以访问,作为服务器安全第一)
# service iptables restart
6、启动 nexus [nexus的bin目录下的可以执行文件可以进入bin查看]
# /usr/nexus/nexus-2.11.2-03/bin/nexus start
浏览器访问: http://192.168.180.115:8081/nexus/
默认账号密码:
账号:admin
密码:admin123
Windows(未验证)
1、直接官网 http://www.sonatype.org/nexus/go/ 下载
2、或者使用 https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-latest-bundle.zip 迅雷等工具将压缩包下载。
将压缩包加压,双击console-nexus.bat安装。
3、操作NEXUS
游览器中输入http://127.0.0.1:8081/nexus/,出现如下图所示就代表nexus已经启动成功。
8081为默认的端口号,要修改端口号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,修改application-port属性值就可以了。
默认的用户名和密码:admin/admin123
三、访问权限
Nexus的访问权限模型
Nexus是基于权限做访问控制的,服务器的每一个资源都有对应的权限来控制,因此用户执行特定的操作时就必须拥有必要的权限。管理员必须以角色的方式将权限赋予Nexus用户。用户可以被赋予一个或者多个角色,角色可以包含一个或多个权限,角色还可以包含一个或者多个其他角色。
Nexus上预定义了三个用户,用admin登录后,单击页面左边的User链接,看到如下图列表:
admin:该用户拥有Nexus的全部权限,默认密码为admin123。
deployment:该用户能够访问Nexus,浏览仓库内容、搜索、上传部署构件,但是不能对Nexus进行任何配置,默认密码为deployment123。
anonymous:该用户对应了所有未登录的匿名用户,它们可以浏览仓库并进行搜索。
添加新用户并授予登录访问权限
四、Repository介绍
Repository:
1、Public Repositories,这是一个Repository Group,该Repository Group包含了多个Repository,其中包含了Releases、Snapshots、ThirdParty和Central。
2、3rd party,该Repository即是存放你公司所购买的第三方软件库的地方,它是一个由Nexus自己维护的一个Repository。
3、Apache Snapshots,看名字你就应该知道这是个什么样的Repository,这是一个代理Repository,即最终的依赖还是得在Apache官网上去下载,然后缓存在Nexus中。
4、Central,这就是代理Maven Central Repository的Repository。
5、Releases,你自己的项目要发布时,就应该发布在这个Repository,他也是Nexus自己维护的Repository,而不是代理。
6、Snapshots,你自己项目Snapshot的Repository。
TYPE:
hosted 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
五、nexus配置
利用现有nexus索引配置
需要的索引有Public Repositories,3rd party和Central。
Public Repositories部分
Public Repositories部分,需要注意左下方的顺序:
3rd party部分:
使用3rd party上传第三方jar包
(也可以通过 mvn deploy ---上传私服jar包)
在Repository列表中,选中 3rd party,选中artifact upload,
选择GAV Defini3ion: GAV Parameters,Auto Guess 打钩。
在下方输入JAR包对应的Group、Artifact、Version,Packaging选择JAR格式。
点击select Artifact(s) to upload 按钮,选择要上传的JAR包。
点击提交显示如上图 即为上传成功。
此时在3rd下面就可以看到我们上传的包了:
上传的包会在存到本地路径
到此路径下也可以看到我们刚上传的jar包。
我们要在私服上查找我们需要的包也可以使用全局搜索;
当我们在3rd下上传完文件后,可以看到Public Repositories下也有了文件。
所以前面说Public Repositories,是一个Repository Group,该Repository Group包含了多个Repository,其中包含了Releases、Snapshots、ThirdParty和Central。
Central部分
新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。把download remote indexes改成true。保存!!
保存后后台会运行一个任务,点击菜单栏的administration -- Scheduled Tasks选项即可看到有个任务在RUNNING。
六、项目引用
如果要使用nexus中的jar包时需要在pom.xml 中引入如下代码:
<repositories><repository><id>local</id><name>Team Nexus Repository</name><url>http://192.168.181.70:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
在pom中引用一个jar包
确保本地没有此jar包,当修改完xml文件后,保存。
这时本地没有此jar包 就会到nexus中去找,但是我们的nexus是新安装的 也没有此jar包,这时nexus就会到中央仓库中去下载到nexus,本地项目再从nexus中下载到而本地。当保存文件后 我们在取nexus和本地仓库中去看是否真的会有此jar包。
这里可以在nexus的Central中可以看到新下载的jar包。
再到PublicRepositories中可以看到也多了此jar包。
Maven Nexus详解相关推荐
- Maven打包详解(“There are test failures”)
Maven打包详解("There are test failures") 以下操作都是在IDEA软件内进行的. 第一步:idea界面中选择右边的Maven projects 界面: ...
- (十)Maven依赖详解
1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸...男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子. 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能 ...
- maven assembly详解
依赖 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-asse ...
- Maven使用详解视频课程——笔记(一)
视频课程链接:http://edu.51cto.com/course/13014.html Maven项目管理工具,主讲:汤小洋 一.Maven简介 1. 什么是Maven Apache Mave ...
- Maven入门详解与安装配置
Maven: Maven出现前的问题: 假设你现在做了一个项目,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等,除了这些之外,你有可能用到你的同事开发的其他的东西,比如说 ...
- Maven入门详解以及Eclisp的集成
1.首先要安装Maven到操作系统上 Maven的下载页面:http://maven.apache.org/download.html Maven跟Tomcat很像,下载下来后直接解压在指定的目录就安 ...
- 史上最详细的maven仓库详解
写在前面: 我是「沸羊羊_」,昵称来自于姓名的缩写 fyy ,之前呕心沥血经营的博客因手残意外注销,现经营此账号. 本人是个小菜,正向着全栈工程师的方向努力着,文章可能并不高产,也很基础,但每写一篇都 ...
- Java项目管理工具:maven配置详解
目录 一.maven概述 二.maven仓库 三.maven工程 最后 今天是刘小爱自学Java的第98天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 经过97天的学习,对于JavaSE.数 ...
- Intellij IDEA 将工程转换成maven工程 详解
1> 右键工程,点击 Add Framework Support 2> 选中 Maven,再点击 OK 3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Ma ...
最新文章
- @resource 与 @autowired
- 单片机代码怎么读懂_单片机程序员的面试经验
- php获取form传递的变量,PHP-将变量传递给Ninja Form字段
- Metasploit Framework 简介与使用
- flush方法和close方法的区别
- 方法覆盖(方法重写)
- Jenkins安装(Maven安装)(4)
- 锋利的js前端分页之jQuery
- Redis问题:ERR max number of clients reached
- wireshark协议
- ie不支持replaceall_继IE之后,微软又要彻底放弃这些office了
- yii2 memcache 跨平台交互 键和值不一样
- c语言pic延时1ms程序,几个延时子程序
- python txt转为csv
- 自学总结:非科班转行前端拿到字节跳动 offer?看我是如何一步一步做到的?
- 超六类与七类等多类网线的比较—Vecloud
- C#中Get和Set的用法
- 企业使用云平台,存在的三个问题
- SMS发送WapPush
- WebApp 安全风险与防护课堂(第二讲)开课了!
热门文章
- ORACLE TRUNCATE 的用法
- awk从入门到入土(19)awk扩展插件,让awk如虎添翼
- 线程与全局解释器锁(GIL)
- Python --- ctypes库的使用
- 【IEEE_Verilog-4.4】Verilog中的充电强度charge strength和驱动强度drive strength
- 安全合规/法案--32--《儿童个人信息网络保护规定》原文及解读
- 当面试官问 promise 的时候,他们希望听到什么(二)
- 【ArcGIS教程02】HTML弹窗挂接显示调研照片
- AD18版本中测距之后显示信息不能清除
- 【20200129】win10 win7双系统安装成功后,win7提示未激活怎么办?