简体   繁体   English

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

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

I have a Spring Boot project using Jersey. 我有一个使用Jersey的Spring Boot项目。 spring-jersey3 has a dependency to HK2: spring-jersey3对HK2有依赖性:

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

The HK2's manifest Class-Path looks like this: HK2的清单类路径如下所示:

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. 当我在Liberty Profile上部署该项目作为战争时,我收到许多有关HK2清单文件的错误消息。 I get one error like this for each jar file in the Class-Path in HK2's manifest file: 对于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.

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. hk2-2.5.0-b32.jar不包含任何jar库,但是HK2的类路径上的所有库确实存在于应用程序的lib文件夹中。

So my question is: What do theese dollar signs in the manifest Class-Path mean? 所以我的问题是: 清单中的Class-Path中的这些美元符号什么意思? And is it possible that this syntax is what makes my Liberty Profile server complain? 而且这种语法是否可能使我的Liberty Profile服务器抱怨?

I have fixed this issue in the hk2 code base. 我已经在hk2代码库中解决了这个问题。 See: 看到:

Fix for Manifest Class Path 修正清单类路径

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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