У меня есть продукт Eclipse RAP, мне нравится экспортировать его как веб-приложение для использования внутри Tomcat. Для этого я использую экспортер военных продуктов в Eclipse, который до сих пор работал нормально.
У меня проблема с компиляцией одного из пакетов OSGi в продукте, так как это относится к набору внешних банок с использованием подстановки переменных. Это показано в следующем фрагменте из 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... И, следовательно, не объекты класса. ..)