У меня есть продукт Eclipse RAP, я люблю экспортировать его как веб-приложение для использования внутри Tomcat.Для этого я использую экспортер warproduct в Eclipse, который до сих пор работал нормально.
У меня проблема с компиляцией одного из пакетов OSGi в продукте, поскольку это относится к набору внешних jar-файлов с использованием переменнойзамена.Это показано в следующем фрагменте из MANIFEST.MF
:
Bundle-Name: ...
Bundle-SymbolicName: ...
Bundle-ClassPath2: external:/A/test1/jakarta-tomcat/shared/lib/a_base.jar
Bundle-ClassPath: external:$A_HOME$/jakarta-tomcat/shared/lib/a_base.jar
Если вместо этого я использую первый путь к классам и на месте будет правильный /A/test1/jakarta-tomcat/shared/lib/a_base.jar
, то все будет хорошо во время компиляции ... ИЯ даже могу потом вручную изменить MANIFEST.MF
на правильную версию с заменой.
Но я действительно хотел бы избежать этого дополнительного шага, если это вообще возможно!
Я думаю, чтоВопрос в том, как передать правильное значение для A_HOME
во время компиляции?
(Зачем это делать? Выше я только что показал один файл JAR, но у нас есть большее количество файлов JAR, которые мы хотимсовместное использование между нашими старыми приложениями Tomcat и более новым приложением на основе RAP. Мы знаем, что в этой ситуации есть другие способы совместного использования jar-файлов - например, через расширитель платформы OSGi или параметр инициализации extendedFrameworkExports
в web.xml
- но нам нужен выбранныйметод, поскольку мы используем EMF и, следовательно, не можем совместно использовать метаданные EMF между Tomcat и Eclipse ... И, следовательно, не объектами класса ...)