• Maven搭建私有仓库(私服)


    Nexus简介

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

    包括我们常见的YumDockernpmNuGel等等。

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

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

    使用Nexus

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

    然后解压:

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

    执行如下命令:

    1.  // Unix & OS X
    2.  ./nexus run
    3.  ​
    4.  // Windows  
    5.  nexus.exe /run
    6. 复制代码

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

    这样就是跑起来了。

    默认端口是8081

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

    我们访问后是如下页面:

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

    账户就是admin

    管理仓库

    创建后会自带几个仓库:

    仓库类型描述
    maven-centralproxy远程中央仓库
    maven-releaseshosted私库发行仓库
    maven-snapshotshosted私库快照仓库
    maven-publicgroup仓库组

    仓库类型:

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

    上传Maven依赖

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

    1. 确保项目在本地maven环境下无错误;
    2. 进入到本地maven仓库下;
    3. 新创建一个sh脚本(这个脚本是从网上找的,但是已经不记得从哪找的了)
    1.  #!/bin/bash
    2.  # copy and run this script to the root of the repository directory containing files
    3.  # this script attempts to exclude uploading itself explicitly so the script name is important
    4.  # Get command line params
    5.  
    6.  while getopts ":r:u:p:" opt; do
    7.   case $opt in
    8.       r) REPO_URL="$OPTARG"
    9.       ;;
    10.       u) USERNAME="$OPTARG"
    11.       ;;
    12.       p) PASSWORD="$OPTARG"
    13.       ;;
    14.   esac
    15.  done
    16.  
    17.  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}/{} ;
    18. 复制代码

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

    1.  ./mavenUpload.sh -u admin -p admin -r http://IP:PORT/repository/dataservice/
    2. 复制代码

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

    手动上传:

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

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

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

    提醒:

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

    这样本地项目的依赖和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后进程也会消失,至于怎么让它在后台保留,想必聪明的你不需要我多教了吧。

    尾述

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

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

  • 相关阅读:
    Salesforce中国区解散,谁是替代的最佳选择?
    【广州华锐互动】煤矿坍塌VR事故警示教育突破了哪些限制?
    .NET周刊【5月第3期 2024-05-19】
    处理数据中不必要的部分,并将处理过的数据写入新的文件中
    C#事件详解及应用示例
    apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】
    Spring()
    聚观早报 | 遥感AI大模型发布;拼多多启动11.11大促
    命名实体标注工具
    【C++ 学习 ㉒】- 超详解 AVL 树的插入、平衡调整以及删除(含源代码)
  • 原文地址:https://blog.csdn.net/qq_60750453/article/details/126718406