侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

使用Nexus搭建maven服务器

2023-12-23 星期六 / 0 评论 / 0 点赞 / 152 阅读 / 11661 字

使用Nexus搭建maven服务器 1 下载与安装 1.1 下载Nexus Nexus下载地址:http://www.sonatype.org/nexus/go/ 进入如下页面: 选择箭头所指的按钮

使用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包)。

 

广告 广告

评论区