美元符号在manifest.mf类路径中的作用是什么?

时间:2017-05-11 12:18:38

标签: java spring-boot websphere-liberty manifest.mf hk2

我有一个使用Jersey的Spring Boot项目。 spring-jersey3依赖于HK2:

<dependency>
    <groupId>org.glassfish.hk2</groupId>
    <artifactId>hk2</artifactId>
    <version>${hk2.version}</version>
</dependency>

HK2的清单Class-Path如下所示:

Class-Path: $hk2-utils.$jar $javax.inject.$jar $hk2-api.$jar $aopallia
 nce-repackaged.$jar $config-types.$jar $hk2-core.$jar $hk2-config.$ja
 r $tiger-types.$jar $hibernate-validator.$jar $validation-api.$jar $j
 boss-logging.$jar $classmate.$jar $hk2-locator.$jar $javax.inject.$ja
 r $javassist.$jar $hk2-runlevel.$jar $class-model.$jar $asm-all-repac
 kaged.$jar

当我将此项目部署为Liberty Profile上的战争时,我收到很多关于HK2的清单文件的错误消息。我在HK2的清单文件的Class-Path中为每个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.

hk2-2.5.0-b32.jar不包含任何jar库,但HK2的类路径中的所有库都存在于应用程序的lib文件夹中。

所以我的问题是:清单Class-Path中的theese美元符号是什么意思?这种语法是否可能导致我的Liberty Profile服务器抱怨?

1 个答案:

答案 0 :(得分:0)

我已在hk2代码库中解决了这个问题。参见:

Fix for Manifest Class Path