我有一个 Eclipse RAP 产品,我喜欢导出为 Web 应用程序以在 Tomcat 中使用。为此,我在 Eclipse 中使用了 warproduct 导出器,到目前为止它运行良好。
我在编译产品中的一个 OSGi 包时遇到问题,因为它指的是一组使用变量替换的外部 jar。这显示在来自 a 的以下片段中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 文件,但是我们想要在旧的 Tomcat 应用程序和新的基于 RAP 的应用程序之间共享大量的 jar 文件。我们知道,还有其他共享 jar 文件的方式在这种情况下 - 例如通过 OSGi 框架扩展器或extendedFrameworkExports
初始化参数web.xml
- 但我们需要选择的方法,因为我们使用 EMF,因此无法在 Tomcat 和 Eclipse 之间共享 EMF 元数据......因此不是类对象...... )