zl程序教程

您现在的位置是:首页 >  其他

当前栏目

N年前的脚本:mvn打包到本地仓库

打包 脚本 本地 仓库 mvn
2023-06-13 09:15:23 时间

电脑没有网,需要把几个依赖的jar包打到本地仓库,我想起了N年以前写的一个mvn-install工具,好在用everything搜索出来了,所幸还能使用,却想不起来为什么要写这么一个脚本,mvn install也是一条命令的事。

#!/bin/bash
echo "author:star.hu"
echo "请整理好完整的包路径,eg:/com.oracle/ojdbc8/19.3/ojdbc8-19.3.jar"
curr_dir=$(cd $(dirname $0); pwd)
echo "当前路径: $curr_dir"
read -r -p "请输入jar包路径:" P1
#read -p "请输入groupId:" P2
#read -p "请输入artifactId:" P3
#read -p "请输入version:" P4
v=`echo $P1 | awk -F '\' '{print $(NF-1)}'`
a=`echo $P1 | awk -F '\' '{print $(NF-2)}'`
g=`echo $P1 | awk -F '\' '{print $(NF-3)}'`
echo $g $a $v
mvn install:install-file -Dfile=$P1 -DgroupId=$g -DartifactId=$a -Dversion=$v -Dpackaging=jar

竟然一上来就标注了自己是作者,非常强烈的装X意识。整体看还行吧,需要输入一个参数,即依赖包的完整路径,这里需要注意如果groupId是多级目录的使用"."命名文件夹。

看注释掉的7,8,9行能看出来原来是需要依次输入groupId,artifactId和version的,后来改成输入一个完整路径了,想不起来为何了。

使用read命令时,注意选择参数 -r,取消backslash转义,这样才能正确地按照backslash进行目录分隔。

使用awk将完整包路径进行分隔,获取到对应的version,artifactId,groupId,这里竟然使用了3次分隔,好像是不会将awk结果赋值给数组导致的(这个稍后查查,先保持原状)。

最后就是使用mvn install命令,貌似直接使用也没有什么难度,而且不需要构建依赖包全路径。运行结果如下。