一、简介

是种特殊的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步骤:

  1. 上传jdk的tar包:jdk-8u11-linux-x64.tar.gz
  2. 创建jdk安装目录:# mkdir -p /usr/local/jdk
  3. 解压安装jdk::tar -zxvf jdk-8u11-linux-x64.tar.gz -C /usr/local/jdk
  4. 查看是否安装成功:# 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详解相关推荐

  1. Maven打包详解(“There are test failures”)

    Maven打包详解("There are test failures") 以下操作都是在IDEA软件内进行的. 第一步:idea界面中选择右边的Maven projects 界面: ...

  2. (十)Maven依赖详解

    1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸...男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子. 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能 ...

  3. maven assembly详解

    依赖 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-asse ...

  4. Maven使用详解视频课程——笔记(一)

    视频课程链接:http://edu.51cto.com/course/13014.html Maven项目管理工具,主讲:汤小洋 一.Maven简介 1. 什么是Maven ​ Apache Mave ...

  5. Maven入门详解与安装配置

    Maven: Maven出现前的问题: 假设你现在做了一个项目,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等,除了这些之外,你有可能用到你的同事开发的其他的东西,比如说 ...

  6. Maven入门详解以及Eclisp的集成

    1.首先要安装Maven到操作系统上 Maven的下载页面:http://maven.apache.org/download.html Maven跟Tomcat很像,下载下来后直接解压在指定的目录就安 ...

  7. 史上最详细的maven仓库详解

    写在前面: 我是「沸羊羊_」,昵称来自于姓名的缩写 fyy ,之前呕心沥血经营的博客因手残意外注销,现经营此账号. 本人是个小菜,正向着全栈工程师的方向努力着,文章可能并不高产,也很基础,但每写一篇都 ...

  8. Java项目管理工具:maven配置详解

    目录 一.maven概述 二.maven仓库 三.maven工程 最后 今天是刘小爱自学Java的第98天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 经过97天的学习,对于JavaSE.数 ...

  9. Intellij IDEA 将工程转换成maven工程 详解

    1> 右键工程,点击 Add Framework Support   2> 选中 Maven,再点击 OK   3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Ma ...

最新文章

  1. @resource 与 @autowired
  2. 单片机代码怎么读懂_单片机程序员的面试经验
  3. php获取form传递的变量,PHP-将变量传递给Ninja Form字段
  4. Metasploit Framework 简介与使用
  5. flush方法和close方法的区别
  6. 方法覆盖(方法重写)
  7. Jenkins安装(Maven安装)(4)
  8. 锋利的js前端分页之jQuery
  9. Redis问题:ERR max number of clients reached
  10. wireshark协议
  11. ie不支持replaceall_继IE之后,微软又要彻底放弃这些office了
  12. yii2 memcache 跨平台交互 键和值不一样
  13. c语言pic延时1ms程序,几个延时子程序
  14. python txt转为csv
  15. 自学总结:非科班转行前端拿到字节跳动 offer?看我是如何一步一步做到的?
  16. 超六类与七类等多类网线的比较—Vecloud
  17. C#中Get和Set的用法
  18. 企业使用云平台,存在的三个问题
  19. SMS发送WapPush
  20. WebApp 安全风险与防护课堂(第二讲)开课了!

热门文章

  1. ORACLE TRUNCATE 的用法
  2. awk从入门到入土(19)awk扩展插件,让awk如虎添翼
  3. 线程与全局解释器锁(GIL)
  4. Python --- ctypes库的使用
  5. 【IEEE_Verilog-4.4】Verilog中的充电强度charge strength和驱动强度drive strength
  6. 安全合规/法案--32--《儿童个人信息网络保护规定》原文及解读
  7. 当面试官问 promise 的时候,他们希望听到什么(二)
  8. 【ArcGIS教程02】HTML弹窗挂接显示调研照片
  9. AD18版本中测距之后显示信息不能清除
  10. 【20200129】win10 win7双系统安装成功后,win7提示未激活怎么办?