在项目集成钉钉的时候,需要导入钉钉的jar包。项目使用Springboot并使用maven管理所有的jar包,我手动将这个第三方的jar包添加到项目中的之后,果然,所有的钉钉包中的类都可以使用了,项目能够正常运行。但是,当我执行 mvn clean install 命令的时候,就会出现引入的jar包无法编译的问题,在编译好的class文件中找不到我引入的这个jar包,经过查找资料发现,出现该问题的原因是由于,jar包虽然引入,类能够找到包,但是该包和maven没有任何的关系,所以你是用maven的命令的时候,maven肯定找不到这个包,那如何将这个第三方的jar包交给maven管理呢?
一、将第三方jar包交给maven管理
在控制台中执行下面的命令(该命令的执行环境要确保你本地安装了Maven环境,否则要先安装maven)
mvn install:install-file -Dfile=F:\taobao-sdk-java-auto_1479188381469-20190325.jar -DgroupId=dingDing -DartifactId=dingDing -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
上面命令各部分的解释如下:
-Dfile的后面输入的为你下载的第三方jar包的本地文件路径。
-DgroupId的后面输入的为你转maven jar包后groupId的标签内容<groupId>dingDing</groupId>。
-DartifactId的后面输入的为你转maven jar包后artifactId的标签内容<artifactId>dingDing</artifactId>。
-Dversion的后面输入的为你转maven jar包后version的标签内容版本号<version>1.0</version>。
经过上面的操作之后,该jar包已经交给maven了,既然maven能够管理这个jar包了,那我们就需要在该项目的pom.xml文件中添加我们刚才定义好的依赖文件,操作如下:
<dependency>
<groupId>dingDing</groupId>
<artifactId>dingDing</artifactId>
<version>1.0</version>
</dependency>
现在再次使用 mvn clean install 不会出错了,问题解决了。
二、将自己写的类打成jar包
jar是一个打包命令,可以通过控制台来查看该命令都有哪些参数,可以实现哪些功能,Win+R可以打开控制台,输入命令jar -help
出现下面的内容:
选项:
-c 创建新档案
-t 列出档案目录
-x 从档案中提取指定的 (或所有) 文件
-u 更新现有档案
-v 在标准输出中生成详细输出
-f 指定档案文件名
-m 包含指定清单文件中的清单信息
-n 创建新档案后执行 Pack200 规范化
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储; 不使用任何 ZIP 压缩
-P 保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含以下文件
如果任何文件为目录, 则对其进行递归处理。
清单文件名, 档案文件名和入口点名称的指定顺序
与 'm', 'f' 和 'e' 标记的指定顺序相同。
示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中:
jar cvf classes.jar Foo.class Bar.class
示例 2: 使用现有的清单文件 'mymanifest' 并
将 foo/ 目录中的所有文件归档到 'classes.jar' 中:
jar cvfm classes.jar mymanifest -C foo/ .
看到了吗,查询了帮助之后,已经给出了我们操作示例了,那我们可以尝试进行打包一下,将utils工具包下面的所有类打包:
cd F:
cd F:\jar\utils 说明:打包的类所在的文件目录
jar cvf utils.jar F:\jar\utils\ . 说明将F:\jar\utils\目录中的所有类打包成utils.jar包