Java 美元符号在manifest.mf类路径中起什么作用?
我有一个使用运动衫的春靴项目。spring-Jersey 3依赖于HK2:Java 美元符号在manifest.mf类路径中起什么作用?,java,spring-boot,websphere-liberty,manifest.mf,hk2,Java,Spring Boot,Websphere Liberty,Manifest.mf,Hk2,我有一个使用运动衫的春靴项目。spring-Jersey 3依赖于HK2: <dependency> <groupId>org.glassfish.hk2</groupId> <artifactId>hk2</artifactId> <version>${hk2.version}</version> </dependency> 当我将此项目部署为自由战争概要文件时,我会收到很
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2</artifactId>
<version>${hk2.version}</version>
</dependency>
当我将此项目部署为自由战争概要文件时,我会收到很多关于HK2清单文件的错误消息。对于HK2清单文件的类路径中的每个jar文件,我都会得到一个类似这样的错误:
The manifest class path $hk2-utils.$jar can not be found in jar file wsjar:file:<path to WLP server>/usr/servers/int/dropins/<name of application>.war!/WEB-INF/lib/hk2-2.5.0-b32.jar or its parent.
在jar文件wsjar:file:/usr/servers/int/dropins/.war中找不到清单类路径$hk2 utils.$jar/WEB-INF/lib/hk2-2.5.0-b32.jar或其父项。
hk2-2.5.0-b32.jar不包含任何jar库,但hk2类路径上的所有库都存在于应用程序的lib文件夹中
所以我的问题是:清单类路径中的美元符号是什么意思?我的Liberty Profile server会抱怨这个语法吗?我已经在hk2代码库中修复了这个问题。见:
这对我来说只是一个bug,但清单类路径是如何生成的?我们可以看到manifest类路径指向名为:hk2-utils.jar的文件,但我们的lib文件夹包含的文件名为:hk2-utils-2.5.0-b32.jar的相同文件。所有JAR都有版本后缀。当我手动将清单类路径改为指向hk2-utils-2.5.0-b32.jar时,WLP日志不再抱怨该文件。我们在maven文件中使用自定义类路径来删除版本号。我不确定这方面的标准做法是什么
The manifest class path $hk2-utils.$jar can not be found in jar file wsjar:file:<path to WLP server>/usr/servers/int/dropins/<name of application>.war!/WEB-INF/lib/hk2-2.5.0-b32.jar or its parent.