#osgi #bnd #bndtools
Вопрос:
Я хочу программно пересчитать «Импортный пакет» банки OSGi. Я пытаюсь использовать анализатор bnd.
try(Analyzer analyzer = new Analyzer()) {
analyzer.setJar(new File(filename));
return analyzer.getImportPackage();
}
Это возвращает (неправильный) существующий импорт MANIFEST.MF. Как я могу программно пересчитать «Пакет импорта» Jar OSGi?
Обновление Добавления, как предложил BJ Hargrave calMainfest (), не работает:
try(Analyzer analyzer = new Analyzer()) {
analyzer.setJar(new File(filename));
analyzer.calcManifest();
return analyzer.getImportPackage();
}
Похоже, он использует существующий файл MANIFEST.MF, содержащийся в банке.
С уважением
Кишо
Ответ №1:
Вам нужно позвонить calcManifest()
, чтобы вычислить новый манифест. В противном случае он просто использует существующий манифест.
Комментарии:
1. После вызова calcManifest пакеты импорта по — прежнему пусты.
2. @bl-hargrave При использовании calcManifest() все еще кажется, что он использует существующий МАНИФЕСТ. MF, у которого нет пакета импорта (он использует обязательные пакеты)