关于打Jar包的那些事

关于打Jar包的那些事

彼方 1360 2022-11-20

背景

要提供一个Java测试脚本给甲方爸爸测试接口用,甲方那边说给个Jar包就行,所以才有了下面的故事。

说明

首先,这个程序里引用了一些外部的加密解密工具类,这些工具类都是甲方提供的,而且是Jar格式的,所以我最初是在程序里直接引用的本地Jar包(这里有个坑),然后随手就建了个SpringBoot项目(有框架不用,天理难容),引了一些必要的依赖,写了下接口测试的逻辑。
一切都很正常,测试了一下程序也没啥问题,准备打包了。可以我运行打包命令后,控制台一片报红。

仔细看了一下,原来是引用的那些外部Jar包不受maven控制,所以打包的时候找不到这些依赖。
那么问题来了
有什么办法可以把这些外部Jar包也整到Maven里面去呢?
这里想到了(百度)几个办法:

  1. 把甲方提供的Jar包上传到私有maven仓库,然后引入
    问题:没有私人maven仓库
  2. 把甲方提供的Jar包打到本地maven仓库,然后引入
    问题:没啥问题,很可行
  3. 不使用maven打包,直接使用原生打包方式
    问题:会把依赖的文件都打成jar包,不太好

操作

综上所述,选择了第二种方法,把甲方提供的Jar包打到我本地的Maven仓库里,然后引入,操作如下,其实就是一个命令:
先进到本地maven仓库文件夹下,然后执行以下命令

mvn install:install-file -DgroupId=com.sgcc -DartifactId=sm -Dversion=1.0 -Dpackaging=jar -Dfile=/Users/edy/sgsm-1.1.0.jar
  • DgroupId:组名,就是自己的包名
  • DartifactId
  • Dversion:版本
  • Dfile:指定文件,这里是指定当前目录下

本地依赖添加完成后,在pom文件中引入打包即可,结束。。。