文档章节

使用Nexus搭建maven服务器

yizhichao
 yizhichao
发布于 2016/09/06 09:14
字数 1668
阅读 38
收藏 0

使用Nexus搭建maven服务器

1         下载与安装

1.1    下载Nexus

Nexus下载地址:http://www.sonatype.org/nexus/go/

进入如下页面:

选择箭头所指的按钮,点击下载。

1.2    安装

下载之后将安装包解压:

解压到自己的安装目录。例如:C:\Program Files\Nexus

系统默认启动的端口为8081.如果需要更改,修改/conf/nexus.properties文件:

修改application-port为你需要的端口,例如8080

之后到/bin/jsw/文件夹中找到对应当前操作系统的文件夹:

例如在windows server2012 x64中就打开windows-x86-64文件夹,打开后文件结构如下:

Console-nexus.bat:          从命令行启动nexus进程(一次性)

Install-nexus.bat:              将nexus安装为windows服务,随着系统启动

Uninstall-nexus.bat:         卸载nexus系统服务(若没有安装会报错)

Start-nexus:                        启动nexus系统服务

Stop-nexus:                         停止nexus系统服务

一般将nexus安装为系统服务随系统启动。点击install-nexus.bat。如果报错,检查JDK是否已经安装,并且正确配置了环境变量JAVA_HOME,同时以管理员身份运行。

安装成功后就可以在浏览器中访问nexus管理程序。例如http://192.168.1.7:8080/nexus/

如果显示如下页面,说明安装成功:

 

2         仓库管理

2.1    仓库结构

进入Nexus管理程序,点击右上角log In,默认的用户名为admin,密码为admin123。(不登录只能查看当前仓库和查找jar包的maven地址,不能对Nexus进行配置)。

点中上图箭头指向的Repositories,可以看见下图所示的界面:

其中仓库有以下几种类型:

Group:         仓库组。向外提供服务的单位。可包含多个仓库

Hosted:       宿主仓库。建立在安装nexus的服务器上。

Proxy:             代理仓库。代理其他远程maven仓库。

Virtual:           虚拟仓库。相当于另一个仓库的镜像。

                            Nexus默认的仓库如下:

                            Public Repositories:                公共仓库组。默认的对外发布仓库。

                            3rd party:                                  本地的第三方仓库。用于上传第三方jar包

                            Apache Snapshots:                  Apache Snapshots仓库。基本用不到

                            Central:                                      代理Maven中央仓库。

                            Central M1 shadow:               中央仓库的镜像

Release:                                   自己工程的release包

Snapshots:                                 自己工程的Snapshots包

2.2    仓库配置

2.2.1   远程仓库索引

仓库的索引用于快速搜索jar包并且获得所需要的xml数据。所有被代理的远程仓库都需要Nexus获取索引并发布为Nexus索引。

以中央仓库为例:

选中central,在下方的面板中找到configuration,将download remote index改为true。


选中 central,右键点击repair index。系统会自动下载中央仓库的索引,转化为Nexus服务器仓库组的索引,并且发布在服务器上。当这一步成功以后,使用者就可以下载Nexus提供的索引在本地查找Jar包的xml数据了。(详见Maven配置文档。)

建立索引时,可以在AdministrationàScheduled task中看到创建索引任务正在进行。同时可以在

administration-> logging中看到日志。

注意:建立索引这一过程耗时极长。并且由于网络访问问题,从远程仓库如中央仓库下载索引的过程容易失败。日志中会出现Socket exception或者request timeout或者javaw exception,并且scheduled task中创建索引的任务消失。如果出现此种情况,说明远程索引未下载成功。遇到这种情况请重试,必要的话可以尝试更换DNS地址。

创建索引一共分为3部分,首先从远程仓库下载索引,解压并解析下载到的索引,发布新索引到Nexus代理仓库。在创建索引的过程中,打开windows资源监视器,第一阶段基本只占用网络资源,同时,如果JAVA进程占用的网速没超过带宽的50%,那此次下载就很可能失败。如果只有几十KB,可以考虑直接点击stop.bat结束服务重启。第二阶段特点是高CPU用,接近100%。最后一个阶段特点是硬盘占用大,CPU占用在30%到100之间。如果进行到了第三个阶段,就几乎不需要担心创建失败的问题了。

不要同时对两个仓库执行修复索引或者更新索引操作。会导致在发布索引时报错。

如果索引创建成功,选中仓库就可以浏览仓库中的所有目录。

同时在搜索框搜索jar包的名字,就可以得到详细的搜索结果。

创建索引的过程中,会在磁盘上创建大量的临时文件。规模在10G级别,如果一次创建失败,重新开始时,上一次的临时文件不会被自动删除。所以创建完索引后,建议重启Nexus服务。(stop-nexus.bat,start-nexus.bat),让系统自行删除临时文件。(Nexus无法通过浏览器远程重新启动)

2.2.2   新增仓库

如果需要新增代理仓库,在Repositories面板点击add按钮。选择proxy 仓库。输入仓库ID,Name,URL。

点击save确定。完成仓库增加。

选中现在使用的仓库组,选中下方面板中的configuration,将刚刚创建的新仓库加入你需要的仓库组中。

至此,新仓库增加完毕,并且已经就可以被访问。

2.2.3   提供Maven仓库服务

Nexus向外提供服务的单位是仓库组。在客户端将maven的仓库地址改成自己仓库组的地址即可。

3         包管理

3.1    新增第三方包

遇到Maven远程仓库中没有的jar包(例如下载的jar),需哟手动上传到Nexus仓库。

选中3rd party,在下方的面板中选中artifact upload。

GAV Definition是maven的pom文件,可以选择手动填写或者从pom.xml上传。如果jar包本来就有maven工程创建,建议从jar包里的pom.xml直接上传代替手动输入。这样可以建立jar包的依赖关系。在引入自己的maven工程之后编译时会自动下载依赖包而不需要手动增加依赖包。

Select Artifact(s) for Upload:在这里上传jar包。

最后点击upload artifact完成上传。点击save发布到3rd party仓库。

3.2    删除第三方jar包

选中3rd party,在下方的面板中选择browse storage。找到你要删除的jar包,右键点击删除。(可以删除jar包,也可以直接删除某个路径下所有的子路径和jar包)。

 

© 著作权归作者所有

yizhichao

yizhichao

粉丝 14
博文 463
码字总数 362827
作品 0
南京
程序员
私信 提问
Linux 下使用 Nexus

为什么要搭建私服? 在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公...

devin223
2017/06/05
0
0
Maven学习 使用Nexus搭建Maven私服

为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发...

coder_life
2016/08/12
31
0
Maven私有库Nexus的安装和使用

Maven私有库Nexus的安装和使用 曾静的技术博客2017-07-2141 阅读 Mavennexus安装 在进行Java开发的时候,通常会使用 Maven 进行第三方库的管理,类似于iOS中的Cocoapods。我们在使用Cocoapo...

曾静的技术博客
2017/07/21
0
0
搭建私有maven仓库并在项目中使用

这是一篇写给女朋友看的教程...前方高能,注意避让~ 1.私有maven仓库的搭建 搭建环境为阿里云ESC服务器,CentOS.确保服务器已经安装Jdk。然后我要手把手教你安装和启动nexus。 Step1:新建一个...

liululee
01/16
0
0
持续集成之路——搭建Maven私服

在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公司内部的Maven服务器...

kjmeng
2010/09/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

九、RabbitMQ的集群安装

概述 理解RabbitMQ的集群原理可能需要花点功夫,但是配置RabbitMQ的集群则非常容易。 注意 如果有防火墙,请提前开放相关端口: client端通信口5672 管理口15672 server间内部通信口25672 e...

XuePeng77
22分钟前
1
0
今天的学习

今天学到了用ci框架向数据库添加数据,代码是这样的: $picture = $this->input->post('picture');$price = $this->input->post('price');$name = $this->input->post('name');$standa......

墨冥
30分钟前
1
0
Java agentlib参数分析

Java agentlib参数分析 再用intellij idea进行远程调试的时候,具体的配置选项如下: 标红的一行显示了远程调试需要添加的虚拟机参数。这个参数到底有什么意义? 我在命令行输入java命令,输...

Mr_Tea伯奕
47分钟前
2
0
四种软件架构演进史,程序员会一种就很牛了!

如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。 ...

我最喜欢三大框架
51分钟前
6
0
如何做高可用的架构设计?

定义目标 既然我们的目标是做到高可用,那么我们就有必要先明确清楚高可用的含义,并通过拆解目标,让目标可以被量化。按照我的理解,可以将目标按照以下三条进行拆解: 1. 保持业务高稳定性...

别打我会飞
52分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部