我正在将一个 Spring 项目导出为 JAR。现在的问题是,我需要处理 spring jar 文件的依赖关系。
一种选择是,将所有 JAR 文件包含在MANIFEST.MFClass-Path
文件的标题中(脖子上的真正痛苦)。我尝试的第二个选项是使用命令行,但当然,我们不能同时拥有和选项一起工作。一旦我们拥有,将被忽略。-cp
-jar
-jar
-cp
为了简化第一个选项,我想知道是否可以在这里引入一些通配符。所以,我试了一下,并将我的清单更改为:
Class-Path: lib/*
没啥事儿。这证实了 Manifest 标头不被*
视为通配符 -> FAILED。
然后我转向第二个选项。我在那里做了一些调整。我摆脱了 JAR 文件,并决定使用包含我的类文件的简单目录结构。然后我创建了一个批处理文件,使用命令运行主类,使用通配符作为命令行参数传递所有 JAR 文件:
java -cp .;./* MainClass
然后我只是运行批处理文件。谢天谢地,它奏效了。但我不想这样。
如果只有某种方法可以仅使用 JAR 文件来完成它,那将是更好的选择。我在这里有什么选择吗?我唯一怀疑的是我是否在 MANIFEST 标题中以正确的方式使用通配符?MANIFEST 标头是否考虑通配符?
注意:我不能使用 Maven。所以,这里不是一个选择。