JAR-файлы зависимостей апплетов с несовместимым путем к классу в MANIFEST.MF - PullRequest
1 голос
/ 10 января 2011

мой апплет зависит от двух библиотек JAR.Каждая библиотека JAR имеет зависимость от xercesImpl-2.2.1.jar.К сожалению, они хотят иметь разные имена:

  • Apache FOP 0.20.5

    • Запись в META-INF / MANIFEST.MF: Class-Path: xercesImpl-2.2.1.jar ...
  • Apache Xalan 2.4.1

    • Запись в META-INF / MANIFEST.MF: Class-Путь: xercesImpl.jar ...

xercesImpl-2.2.1.jar указан в теге.Я вижу в консоли Java, что она успешно загружена.Однако позже консоль показывает попытку чтения xercesImpl.jar, который не существует.Это должно быть получено из манифеста Xalan, потому что код веб-приложения нигде не указывает xercesImpl.jar.Очевидно, что на самом деле уже есть содержимое этого JAR-файла, поэтому его не нужно загружать.

Я использую Maven для управления зависимостями и хотел бы продолжить использование этих двух стандартных общедоступных библиотек с открытым исходным кодом без взломаих манифесты.Любые предложения для лучшего способа решить эту проблему - или я должен просто жить с ложной ошибкой в ​​консоли Java?

Ответы [ 2 ]

1 голос
/ 10 января 2011

Я не Maven Maven, но вам, вероятно, лучше оставить зависимости в одиночестве и каким-то образом дать вашему проекту «цель», которая включает переупаковку одного из файлов JAR, как только они будут в вашем проекте.

Возможно, один из способов сделать это состоит в том, чтобы артефакт 'repackaged JAR' зависел от артефакта 'fop', а ваш проект зависит от артефакта 'repackaged JAR'. Нечто подобное.

0 голосов
/ 03 февраля 2011

Вот моя последняя слегка хакерская идея. Я создал действительные пустые файлы JAR без классов и назвал их именами записей в Class-Path, например, xercesImpl.jar. Я собираюсь поместить их в src / main / webapp, чтобы они были включены в нужное место. Затем плагин Java с радостью загрузит их, вместо того, чтобы регистрировать ошибку.

Таким образом, мне нужно только взломать веб-контент (который в любом случае является беспорядком), а не связываться с файлами JAR библиотеки, зависимостями Maven или процессом сборки.

Все еще открыт для любых лучших предложений ...

...