使用Nexus搭建Maven私有仓库(私服)

简介: 作为一个非常优秀且我找不到合适的替代品的二进制包储存库,功能也是非常强大,不单纯只能设置Maven私有仓库。

Nexus简介


网络异常,图片无法展示
|

网络异常,图片无法展示
|

作为一个非常优秀且我找不到合适的替代品的二进制包储存库,功能也是非常强大,不单纯只能设置Maven私有仓库。

网络异常,图片无法展示
|

包括我们常见的YumDockernpmNuGel等等。

专业版需要付费,个人用免费版就可以,专业版更加强大。

网络异常,图片无法展示
|

专业版与免费版区别如下:

网络异常,图片无法展示
|

使用Nexus

网络异常,图片无法展示
|

首先下载,提供了三个不同版本,我这就直接用Windows版本了。

然后解压:

网络异常,图片无法展示
|

命令cd到此路径下bin文件夹:

网络异常,图片无法展示
|

执行如下命令:

// Unix & OS X
./nexus run
// Windows  
nexus.exe /run

等待跑起来,可能有些慢。

网络异常,图片无法展示
|

这样就是跑起来了。

默认端口是8081

如果端口被占用,我们可以修改配置文件。

网络异常,图片无法展示
|

我们访问后是如下页面:

网络异常,图片无法展示
|

管理员密码在文件中需要自行查看:

网络异常,图片无法展示
|

账户就是admin

管理仓库

创建后会自带几个仓库:

网络异常,图片无法展示
|

仓库 类型 描述
maven-central proxy 远程中央仓库
maven-releases hosted 私库发行仓库
maven-snapshots hosted 私库快照仓库
maven-public group 仓库组

仓库类型:

类型 描述
proxy 可以自主配置使用的远程仓库地址
hosted 内部项目构件发布的仓库类型
virtual 虚拟仓库类型(基本不用)
group 可以自由顺序组合多个仓库使用

上传Maven依赖

批量上传(这段教程来源互联网):

  1. 确保项目在本地maven环境下无错误;
  2. 进入到本地maven仓库下;
  3. 新创建一个sh脚本(这个脚本是从网上找的,但是已经不记得从哪找的了)
#!/bin/bash
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":r:u:p:" opt; do
 case $opt in
     r) REPO_URL="$OPTARG"
     ;;
     u) USERNAME="$OPTARG"
     ;;
     p) PASSWORD="$OPTARG"
     ;;
 esac
done
find . -type f -not -path './mavenUpload\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;

4.在当前目录执行这个脚本,并加上maven私库的账号密码,以及地址。

./mavenUpload.sh -u admin -p admin -r http://IP:PORT/repository/dataservice/

执行完毕后,刷新maven库,就可以看到上传的包了。

手动上传:

当我们maven库已经形成规模,并且仅仅缺少一两个依赖的时候,我们就通过手动上传的方式添加依赖。

网络异常,图片无法展示
|

点击上传,点击需要上传到的仓库,然后选择文件。

需要填写如下字段请自行解决:

网络异常,图片无法展示
|

提醒:

最后包都能顺利下载,但是maven插件却非暴力抵抗,不能提供下载,于是又在maven的配置中加上了私库地址,并且着重加上了<mirrorOf>central</mirrorOf>这个标签。

这样本地项目的依赖和maven插件都恢复正常。

其他命令

Windows:

nexus-2.7.0-06/bin/jsw/windows-x86-64中还有其他的一些脚本

install-nexus.bat:将Nexus安装成Windows服务;

uninstall-nexus.bat:卸载Nexus Windows服务;

start-nexus.bat:启动Nexus Windows服务;

stop-nexus.bat:停止Nexus Windows服务;

Linux:

  1. 用户需要进入到nexus-2.7.0-06/bin/jsw/目录,根据操作系统类型选择文件夹,进入后然后运行如下命令:./nexus console。如果需要停止Nexus,可以使用Ctrl+C 键。例如:Ubuntu32位系统,只需进入到nexus-2.7.0-06/bin/jsw/linux-x86-32/,然后运行上面的命令即可。
  2. 除console之外,Nexus的Linux脚本还提供如下的命令:

./nexus start:启动后台Neuxs服务;

./nexus stop:停止后台Neuxs服务;

./nexus status:查看后台Nexus服务的状态;

./nexus restart:重新启动后台Nexus服务;

注意,我这里可能版本和你不一样,所以路径也不愿意,注意版本更新后有所不同,灵活阅读技术文章很重要。

CMD或者终端界面跑NexusCtrl+C后进程也会消失,至于怎么让它在后台保留,想必聪明的你不需要我多教了吧。

尾述

当然,实际使用还有非常多的功能,上传也有很多方法,但是我们如果没有这方面业务,就不需要深入了。

如果有这方面业务,那其实任何技术都是摸爬滚打过来的,慢慢的就熟练了。

相关文章
|
3月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件(如JARs):本地仓库在首次执行时创建,默认位于`%USER_HOME%/.m2/repository/`;远程仓库包括中央仓库,存放大量开源Java构件,可在线浏览&lt;http://search.maven.org/&gt;。若本地缺失构件,Maven会从远程下载至本地。可通过settings.xml配置本地仓库路径。
|
1月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
501 3
|
3月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
3月前
|
敏捷开发 JavaScript Java
阿里云云效产品使用合集之如何进行Maven私有仓库迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Java Maven
maven开源仓库
maven开源仓库
107 6
|
4月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件,包括依赖和插件。有本地、中央和远程三种类型。本地仓库在首次运行时创建,默认在用户目录的`.m2/repository`。Maven首先查找本地仓库,若无则从远程仓库(如中央仓库)下载。中央仓库包含大量开源Java构件,可在线浏览于http://search.maven.org/。
|
5月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件,如JARs,分为本地、中央和远程。本地仓库在首次运行时于用户目录的`.m2/repository`创建,默认位置可修改`settings.xml`。中央仓库是社区维护的,包含大量开源Java构件,可通过http://search.maven.org搜索。当本地缺失依赖时,Maven会从远程仓库下载到本地。
|
8天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
55 8
|
5天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
18 3