【Maven学习】Nexus OSS私服仓库的安装和配置
背景
公司的代码依赖是通过Maven进行管理的,而Maven的私库我们使用的是Nexus,目前使用的版本是Nexus Repository Manager OSS 2.12.1。
但是由于之前我们搭建的Nexus服务器就是在我们办公室的一台空闲的Linux电脑上,虽然也稳定地使用两年了,但是基于安全性考虑,准备将Nexus服务器迁移到公司的机房服务器去。
因此我需要在机房重新搭建Nexus服务器,然后将办公室上的Nexus服务器迁移到机房服务器。这一篇博客先来记录下Nexus服务器的安装过程。
一、安装JDK
Nexus是基于java语言开发的,所有在安装Nexus2.12.1之前,我们需要配置Nexus2.12.1运行所需要的jdk环境。Nexus2.12.1需要的JDK版本为JDK7。
因为本机环境以及安装过JDK了,正好版本为JDK7,这边就不演示了。
[root@localhost nexus-2.12.1-01]# java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
[root@localhost nexus-2.12.1-01]#
二、下载并安装Nexus Repository Manager OSS 2.12.1
2.1 下载Nexus Repository Manager OSS 2.12.1
Nexus Repository Manager OSS ,之前叫做 Nexus OS,是开源免费的。【OSS = Open Source Software,开源软件——免费】
https://help.sonatype.com/display/NXRM2/Download+Archives+-+Repository+Manager+OSS
Nexus Repository Manager,之前叫做 Nexus Professional。只有拥有一个有效的许可证才可以使用所有功能【专业版本——收费】
https://help.sonatype.com/display/NXRM2/Download+Archives+-+Repository+Manager+2
因此我们首先找到Nexus Repository Manager OSS 的下载地址,如下所示:
https://help.sonatype.com/display/NXRM2/Download+Archives+-+Repository+Manager+OSS
然后向下滑动,找到与我们已经安装好的对应的版本 Nexus Repository Manager OSS 2.12.1
然后我们下载 nexus-2.12.1-01-bundle.tar.gz 压缩包,右键复制好相应的下载地址为
https://download.sonatype.com/nexus/oss/nexus-2.12.1-01-bundle.tar.gz
然后我们在机房的Linux服务器(我们的服务器为CenterOS)上下载该压缩包,使用如下命令即可下载。
wget https://download.sonatype.com/nexus/oss/nexus-2.12.1-01-bundle.tar.gz
等待几分钟即可下载好压缩包。这一次用时10m 41s下载好了nexus-2.12.1-01-bundle.tar.gz
2.2 解压 nexus-2.12.1-01-bundle.tar.gz 压缩包
将nexus-2.12.1-01-bundle.tar.gz压缩包解压到/usr/local目录下,使用如下命令
tar -xf nexus-2.12.1-01-bundle.tar.gz -C /usr/local/
上面命令执行完后,nexus-2.12.1-01-bundle.tar.gz就解压到了/url/local目录下,使用如下命令即可查看
cd /usr/local/
ll
然后我们进入到 nexus-2.12.1-01/ 目录下
[root@localhost local]# cd nexus-2.12.1-01/
[root@localhost nexus-2.12.1-01]# ll
总用量 40
drwxr-xr-x 3 1001 1001 4096 12月 13 16:27 bin
drwxr-xr-x 2 1001 1001 4096 12月 13 16:27 conf
drwxr-xr-x 2 1001 1001 4096 12月 13 16:27 lib
-rw-r--r-- 1 1001 1001 11006 3月 3 2016 LICENSE.txt
drwxr-xr-x 2 1001 1001 4096 3月 3 2016 logs
drwxr-xr-x 4 1001 1001 4096 12月 13 16:27 nexus
-rw-r--r-- 1 1001 1001 782 3月 3 2016 NOTICE.txt
drwxr-xr-x 2 1001 1001 4096 3月 3 2016 tmp
[root@localhost nexus-2.12.1-01]#
2.3 将nexus2.12.1加入到系统服务中
使用如下的命令,将nexus2.12.1加入到系统服务中
[root@localhost nexus-2.12.1-01]# cp bin/nexus /etc/init.d/nexus2
//添加到开机启动
[root@localhost nexus-2.12.1-01]# chkconfig --add nexus2
//设置nexus服务开机自启动
[root@localhost nexus-2.12.1-01]# chkconfig nexus2 on
关于 chkconfig可以参考链接:
- http://blog.csdn.net/jerry_1126/article/details/38684201
- http://man.linuxde.net/chkconfig
- https://www.cnblogs.com/qmfsun/p/3847459.html
2.4 修改Nexus2脚本的配置文件
使用vim命令,修改/etc/init.d/nexus2文件
vim /etc/init.d/nexus2
这里需要修改两个变量值
- NEXUS_HOME修改为Nexus的解压目录 /usr/local/nexus-2.12.1-01/
- RUN_AS_USER修改为 root
#-----------------------------------------------------------------------------
# These settings can be modified to fit the needs of your application
# Set this to the root of the Nexus installation
#NEXUS_HOME=".."
#修改为真正的Nexus目录
NEXUS_HOME="/usr/local/nexus-2.12.1-01/"
# If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write into the Nexus installation directory.
# NOTE - This will set the user which is used to run the Wrapper as well as
# the JVM and is not useful in situations where a privileged resource or
# port needs to be allocated prior to the user being changed.
#RUN_AS_USER=
#将运行时的用户改为root
RUN_AS_USER=root
2.5 配置Nexus2启动时候的jdk版本
在 /usr/local/nexus-2.12.1-01 目录下执行下面的命令
[root@localhost nexus-2.12.1-01]# vim bin/jsw/conf/wrapper.conf
需要将wrapper.java.command 设置为 java的真实路径,我们先使用 cat /etc/profile命令,获取到java的安装目录为 /usr/bin/java
JAVA_HOME=/usr/java
PATH=$PATH:%JAVA_HOME%/bin
CLASSPATH=%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
[root@localhost nexus-2.12.1-01]# ls /usr/java/bin/
appletviewer idlj java javafxpackager javapackager jcmd jdb jinfo jmc jrunscript jstat keytool pack200 rmid serialver unpack200 xjc
ControlPanel jar javac javah java-rmi.cgi jconsole jdeps jjs jmc.ini jsadebugd jstatd native2ascii policytool rmiregistry servertool wsgen
extcheck jarsigner javadoc javap javaws jcontrol jhat jmap jps jstack jvisualvm orbd rmic schemagen tnameserv wsimport
[root@localhost nexus-2.12.1-01]#
因此wrapper.java.command 的值我们得设置为 /usr/java/bin/java
# Set the JSW working directory (used as base for resolving relative paths)
wrapper.working.dir=../../..
# Set the JVM executable
# (modify this to absolute path if you need a Java that is not on the OS path)
#wrapper.java.command=java
#设置好Java执行文件所处的位置
wrapper.java.command=/usr/java/bin/java
2.6 配置Nexus2监听的端口以及仓库存储位置
以上修改完毕后,我们再来修改nexus2.12.1监听的端口,以及仓库的存储位置,如下:
通过vim命令修改 conf/nexus.properties文件
[root@localhost nexus-2.12.1-01]# pwd
/usr/local/nexus-2.12.1-01
[root@localhost nexus-2.12.1-01]# ll
总用量 40
drwxr-xr-x 3 1001 1001 4096 12月 13 16:27 bin
drwxr-xr-x 2 1001 1001 4096 12月 13 16:27 conf
drwxr-xr-x 2 1001 1001 4096 12月 13 16:27 lib
-rw-r--r-- 1 1001 1001 11006 3月 3 2016 LICENSE.txt
drwxr-xr-x 2 1001 1001 4096 3月 3 2016 logs
drwxr-xr-x 4 1001 1001 4096 12月 13 16:27 nexus
-rw-r--r-- 1 1001 1001 782 3月 3 2016 NOTICE.txt
drwxr-xr-x 2 1001 1001 4096 3月 3 2016 tmp
[root@localhost nexus-2.12.1-01]# vim conf/nexus.properties
将application-port设置为8081,将nexus-work设置为${bundleBasedir}/../sonatype-work/nexus,如下所示
# 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
好了,Nexus的安装初步设置操作,完毕!
三、启动Nexus
在启动Nexus之前,我们先看看 Nexus有哪些命令?
敲如下的命令,可以看到nexus有的命令有 console | start | stop | restart | status | dump
[root@localhost nexus-2.12.1-01]# /etc/init.d/nexus2
Usage: /etc/init.d/nexus2 { console | start | stop | restart | status | dump }
[root@localhost nexus-2.12.1-01]#
3.1 启动Nexus
使用如下命令启动Nexus
/etc/init.d/nexus2 start
如下所示
[root@localhost nexus-2.12.1-01]# /etc/init.d/nexus2 start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[root@localhost nexus-2.12.1-01]#
通过日志我们可以看到 Nexus OSS 已经正常启动了。
3.2 访问Nexus
Nexus服务启动之后,我们就可以通过浏览器来访问Nexus了,在浏览器进行访问。
地址为 http://ip:端口/nexus
如下所示,在浏览器输入地址 http://ip地址:8081/nexus 然后就出现了如下所示的画面。
通过上图,我们可以很明显的看到Nexus2.12.1已经正常启动。
3.3 登录后台管理界面
现在我们登录到Nexus2.12.1管理后台。
Nexus管理后台默认的管理员用户名和密码为admin/admin123
填好用户名和密码,点击LogIn,然后我们就可以看到如下所示的界面
点击左侧菜单栏的Responsitories
然后就可以展开目前拥有的Responsitories
关于仓库的截图,放大部分如下所示:
一般用到的仓库种类是hosted、proxy。
Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。
Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。
默认情况下Nexus为我们创建了以下主要的Repository:
Public Repositories,这是一个Repository Group,它所对应的URL为http://localhost:8080/nexus-2.5/content/groups/public/,该Repository Group包含了多个Repository,其中包含了Releases、Snapshots、Third Party和Central。Repository Group的作用是我们只需要在自己的项目中配置该Repository Group就行了,它将自动从其所包含的Repository中下载依赖,比如如果我们声明对Spring的依赖,那么根据Repository Group中各个Repository的顺序(可以配置),Nexus将首先从Releases中下载Spring,发现没有,再从Snapshots中下载(极大可能也没有,因为它是个Snapshots的Repository),依次查找,最后可能在Central Repository中找到。在配置项目的Repository时,我们应该首先考虑Public Repositories。
3rd party,该Repository即是存放你公司所购买的第三方软件库的地方,它是一个由Nexus自己维护的一个Repository。
Apache Snapshots,看名字你就应该知道这是个什么样的Repository,这是一个代理Repository,即最终的依赖还是得在Apache官网上去下载,然后缓存在Nexus中。
Central,这就是代理Maven Central Repository的Repository。
Releases,你自己的项目要发布时,就应该发布在这个Repository,他也是Nexus自己维护的Repository,而不是代理。
Snapshots,你自己项目Snapshot的Repository。
参考链接
- https://help.sonatype.com/display/NXRM2/Download+Archives+-+Repository+Manager+OSS
- http://blog.csdn.net/kinglyjn/article/details/53585721
- https://www.ilanni.com/?p=12366
- http://blog.csdn.net/wang379275614/article/details/43940259/
- https://www.cnblogs.com/bingyeh/p/5913486.html
- http://blog.csdn.net/jerry_1126/article/details/38684201
- http://man.linuxde.net/chkconfig
- http://blog.csdn.net/jerry_1126/article/details/38684201
- https://www.cnblogs.com/qmfsun/p/3847459.html
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/78793038
本文同步发表在阿里云栖:https://yq.aliyun.com/articles/282205?spm=5176.blogshare282205.0.0.xLalTm如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作!
【Maven学习】Nexus OSS私服仓库的安装和配置的更多相关文章
- 【Maven学习】Nexus OSS私服仓库的备份与迁移
背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...
- Nexus OSS私服仓库的备份与迁移
背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...
- MAVEN学习笔记之私服Nexus(2)
MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Admin ...
- Maven学习(三) -- 仓库
标签(空格分隔): 学习笔记 坐标和依赖时任何一个构件在Maven世界中的逻辑表示方式:而构件的物理表示方式是文件,Maven通过仓库来同意管理这些文件. 任何一个构件都有其唯一的坐标,根据这个坐标可 ...
- Maven与Nexus OSS
Maven 是一个项目管理和构建自动化工具,是Apache Fundation下的一个Java项目.常用于Java项目中依赖管理 下载直接去官网 安装Maven 已经编译的二进制包 直接解压到安装目录 ...
- Dubbo入门到精通学习笔记(四):持续集成管理平台之Maven私有库和本地库的安装与配置
文章目录 介绍 Maven私有库和本地库的安装与配置 Nexus安装 Nexus 配置(登录后) 介绍 如果构建的Maven项目本地仓库没有对应的依赖包,那么就会去Nexus私服去下载, 那么如果Ne ...
- 07 Maven 使用Nexus创建私服
7. Maven 使用Nexus创建私服 私服不是 Maven 的核心概念,它仅仅是一种衍生出来的特殊的 Maven 仓库.通过建立自己的私服,就可以降低中央仓库负荷.节省外网带宽.加速 Maven ...
- maven学习笔记--window平台下的安装和一些基本的配置
maven官网:http://maven.apache.org/ 系统要求如下: 安装及配置步骤 (1)下载:到Maven 的官网上去下载windows版本的Maven的安装包!下载对应的zip 格式 ...
- Maven项目使用Nexus作为远程仓库的settings.xml配置
Maven项目使用Nexus作为远程仓库的settings.xml配置(转) 在自己电脑C:\Users\hanmm\.m2\下的setting.xml. 1.服务器配置 <server> ...
随机推荐
- javascript 高级选择器:querySelector 和 querySelectorAll
querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的.他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素. 目前几乎主流 ...
- Python学习笔记(二)——高级特性
知识点 切片 切片 取一个list或tuple的部分元素. 原理:调用__getitem__,__setitem__,__delitem__和slice函数. 根据官方的帮助文档(https://do ...
- ubuntu samba
Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...
- 超全面的JavaWeb笔记day10<Response&Request&路径&编码>
1.Response 2.Request 3.路径 4.编码 请求响应流程图 response 1.response概述 response是Servlet.service方法的一个参数,类型为java ...
- Java精选笔记_其他IO流(ObjectInputStream、DataInputStream、PrintStream、标准输入输出流)
其他IO流 ObjectInputStream和ObjectOutputStream 如果希望永久将对象转为字节数据写入到硬盘上,即对象序列化,可以使用ObjectOutputStream(对象输出流 ...
- python2.0_day18_django_form
Django formDjango admin 为什么要讲form,Django里的form能做什么. 前面day16节 简单学习了Django admin,我们知道当我们的models在admin. ...
- dos命令临时和永久设置环境变量方法
方法一:批处理中,修改环境变量,一次性有效(也就是在当前的脚本中有效) CMD中运行:set path==%path%;d:/mypath 用 set path可以查看,当前的环境变量 方 ...
- sphinx的配置和管理.No2
网上配置文档众多,但是对着他们的文档来做老是出问题,于是花了点时间研究了一下,写成总结,方便以后查阅.也希望学习sphinx的朋友能少走弯路.Coreseek的安装请参考:http://blog.ch ...
- C++成员初始化列表的语法
如果Classy是一个累,而mem1.mem2.mem3都是这个类的数据称源,则类构造函数可以使用如下的语法来初始化数据成员:Classy::Classy(int n, int m) : mem1(n ...
- 图解利用vmware工具进行虚拟机克隆
在vmware上创建一台完整的虚拟机,在该创建的虚拟机上进行克隆,先关闭创建的虚拟机,然后选中你要克隆的虚拟机,右击->管理->克隆,然后点击下一步,如下图所示: 2 然后点击下一步,如下 ...