linux 内网环境搭建 maven 私库
参考资料:
https://www.codenong.com/cs106446840/
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 版本
- 第一步 将本地 maven仓库 打包 为 repository.zip
打包前 记得要批量删除 脏数据
找到仓库 - cmd - 执行以下脚本for /r %i in (*.lastUpdated) do del %i
for /r %i in (*.repositories) do del %i
- 通过ftp 上传任意目录
- 解压
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>