Ошибка при создании комплекта из Jar - PullRequest
0 голосов
/ 01 июня 2018

Я конвертирую jar в комплект OSGI с помощью команды jar cvfm test5.jar manifest.txt IngrianNAE-8.4.2.000.p02.jar.Когда я добавляю 'Export-Package' в файл манифеста, пакет не создается, и я получаю следующую ошибку:

java.io.IOException: invalid header field
        at java.util.jar.Attributes.read(Attributes.java:410)
        at java.util.jar.Manifest.read(Manifest.java:199)
        at java.util.jar.Manifest.<init>(Manifest.java:69)
        at sun.tools.jar.Main.run(Main.java:176)
        at sun.tools.jar.Main.main(Main.java:1288)

Если я удаляю Export-Package или помещаю его тег в конец манифестафайл, пакет создается, но Export-Packages не видны в созданном пакете, когда я развертываю его в AEM.со следующим файлом манифеста: Manifest-Version: 1.0

Bnd-LastModified: 1527751846288
Build-Jdk: 1.8.0_161
Built-By: 312847
Bundle-Description: Test
Bundle-ManifestVersion: 2
Bundle-Name: Test Bundle
Bundle-SymbolicName: test
Bundle-Version: 1.1.1.4
Export-Package: com.ingrian.security.nae
Created-By: Apache Maven Bundle Plugin

1 Ответ

0 голосов
/ 01 июня 2018

Вы пропускаете запись Bundle-ClassPath: .,test5.jar в файле manifest.mf.По сути, это встраивает исходный jar-файл как есть в созданный комплект, тем самым делая экспортные пакеты доступными.

Также убедитесь, что com.ingrian.security.nae является действительным пакетом, доступным в test5.jar.

Подробная информация о том, как создать пакет из файла jar здесь , и вы можете найти информациюо том, как структурировать файлы манифеста здесь .

...