关于打Jar包的那些事
背景
要提供一个Java测试脚本给甲方爸爸测试接口用,甲方那边说给个Jar包就行,所以才有了下面的故事。
说明
首先,这个程序里引用了一些外部的加密解密工具类,这些工具类都是甲方提供的,而且是Jar格式的,所以我最初是在程序里直接引用的本地Jar包(这里有个坑),然后随手就建了个SpringBoot项目(有框架不用,天理难容),引了一些必要的依赖,写了下接口测试的逻辑。
一切都很正常,测试了一下程序也没啥问题,准备打包了。可以我运行打包命令后,控制台一片报红。
仔细看了一下,原来是引用的那些外部Jar包不受maven控制,所以打包的时候找不到这些依赖。
有什么办法可以把这些外部Jar包也整到Maven里面去呢?
这里想到了(百度)几个办法:
- 把甲方提供的Jar包上传到私有maven仓库,然后引入
问题:没有私人maven仓库 - 把甲方提供的Jar包打到本地maven仓库,然后引入
问题:没啥问题,很可行 - 不使用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文件中引入打包即可,结束。。。