• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

linux 内网环境搭建 maven 私库

武飞扬头像
wangfei12138
帮助1

linux 内网环境搭建 maven 私库

参考资料

https://www.codenong.com/cs106446840/

https://blog.csdn.net/lch_wyl/article/details/122839744

https://blog.csdn.net/qq243920161/article/details/109701704

https://blog.csdn.net/xu_san_duo/article/details/90611811

1、环境准备

首先安装好maven和jdk

首先下载 nexus包 本次使用版本 nexus-3.31.1-01-unix.tar

上传ftp 解压

tar -zxvf nexus-3.31.1-01-unix.tar

解压后的文件夹包括:
nexus-3.37.3-02 :程序的安装执行文件
sonatype-work :数据存储、缓存等文件

2、启动

进入文件夹

cd nexus-3.37.3-02\bin

执行 ./nexus start 启动(我这里防火墙关闭了,如果未关闭需暴漏端口 默认为8081)

首次登陆需输入密码

查看密码:cat /opt/sonatype-work/nexus3/admin.password

输入 ip 8081(默认端口) 登陆 第一次会强制修改密码

启动成功!

3、配置仓库

1、仓库类型

  • group(仓库组)用来聚合代理仓库和宿主仓库,为这些仓库提供统一的服务地址,以便 Maven 可以更加方便地获得这些仓库中的构件。
  • hosted(宿主仓库) 用来代理远程公共仓库,如 Maven 中央仓库、JBoss 远程仓库。
  • proxy(代理仓库)用来代理远程公共仓库,如 Maven 中央仓库、JBoss 远程仓库。
  • virtual(虚拟仓库) (不常用)

这里搭建 hosted 宿主仓库

学新通

学新通

选择如图所示,这样才可以对私库进行更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sH98hMfj-1668765551311)(C:\Users\HONOR\AppData\Roaming\Typora\typora-user-images\image-20221114132437824.png)]

**下面的选项要切换成allow redeploy **,这样才能运行重复上传一个包,不然会报400:bad request。

Strict 修改为 Permissive 很重要!!! (图片中忘记改了)(这里遇到坑是 批量上传jar 时 有的包死活传不上去,后来新建库 把这个替换了才可以的)

点击 Create repository 即可。

4、本地jar上传

由于是内网开发,上传jar目前有两种办法

  • 1、在外网找台机器,下载配置好 nexus 后 连接外网
  • 2、将本地 maven 打包 上传

ps: 只能上传 hosted 仓库

这里使用第二种方法,第一种 需区分 win/linux 版本

  1. 第一步 将本地 maven仓库 打包 为 repository.zip

    打包前 记得要批量删除 脏数据

    找到仓库 - cmd - 执行以下脚本

    for /r %i in (*.lastUpdated) do del %i

    for /r %i in (*.repositories) do del %i

  2. 通过ftp 上传任意目录

  3. 解压

unzip repository.zip

4、进入 repository 目录 创建 mavenimport.sh 脚本文件 (需要和jar同级别)

touch mavenimport.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 './mavenimport\.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}/{} ;
学新通

5、输入 chmod a x mavenimport.sh 进行可执行授权

6、执行命令 ./mavenimport.sh -u admin -p admin123 -r http://ip:8081/repository/maven-releases/

7、上传完毕后 即可在仓库查看

5、本地maven 配置访问私库

如下配置 http://15.48.83.226:8081/repository/maven-public/ 为 我的组

<mirrors>

<mirror>

<id>nexus</id>

<mirrorOf>*</mirrorOf>

<name>internal nexus repository</name>

<url>http://15.48.83.226:8081/repository/maven-public/</url>

</mirror>

</mirrors>

ository`

<url>http://15.48.83.226:8081/repository/maven-public/</url>

</mirror>

</mirrors>

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaackj
系列文章
更多 icon
同类精品
更多 icon
继续加载