简体   繁体   中英

What does dollar signs do in manifest.mf class-path?

I have a Spring Boot project using Jersey. spring-jersey3 has a dependency to HK2:

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

The HK2's manifest Class-Path looks like this:

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

When I deploy this project as a war on Liberty Profile, then I receive a lot of error messages regarding HK2's manifest file. I get one error like this for each jar file in the Class-Path in HK2's manifest file:

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.

The hk2-2.5.0-b32.jar does not contain any jar-libraries, but all the libraries on the HK2's classpath does exist in the lib folder of the application.

So my question is: What do theese dollar signs in the manifest Class-Path mean? And is it possible that this syntax is what makes my Liberty Profile server complain?

I have fixed this issue in the hk2 code base. See:

Fix for Manifest Class Path

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM