Java OSGi插件-MANIFEST.MF在运行时被重写

Java OSGi插件-MANIFEST.MF在运行时被重写,java,plugins,osgi,manifest.mf,Java,Plugins,Osgi,Manifest.mf,你们知道有没有办法在加载插件时更改MANISFEST.MF设置程序?如果我能在Activator启动方法上做到这一点,对我来说将是完美的 例如: 我有一个plugin1,它依赖于它的MANIFEST.MF到plugin2(需要Bundle:plugin2;Bundle version=“1.0.0”)>在加载plugin1之前设置重新导出这种依赖关系(可见性:=重新导出) 有什么建议吗 提前谢谢 拉斐尔·莫伊塔您不能更改舱单。清单包含声明性信息,需要解析捆绑包并为其提供一个具有必要类型可见性的类

你们知道有没有办法在加载插件时更改MANISFEST.MF设置程序?如果我能在Activator启动方法上做到这一点,对我来说将是完美的

例如:

我有一个plugin1,它依赖于它的MANIFEST.MF到plugin2(需要Bundle:plugin2;Bundle version=“1.0.0”)>在加载plugin1之前设置重新导出这种依赖关系(可见性:=重新导出)

有什么建议吗

提前谢谢
拉斐尔·莫伊塔

您不能更改舱单。清单包含声明性信息,需要解析捆绑包并为其提供一个具有必要类型可见性的类加载器。激活器类由该类加载器加载。您如何期望类装入器装入的类更改类装入器可见的类的定义


为什么不在安装捆绑包之前修改清单?

我们有一个框架,为团队的插件提供自定义激活器。这个自定义激活器为开发人员提供了一些额外的特性,现在也在加载插件代码时对插件代码进行一些更改(注入代码)。为了让它工作,它需要重新导出一些依赖项,因为在注入之后,它再次被编译,我得到一个ClassDefFoundError。由于注入的代码是一个遗留代码,我可以要求团队手动更改它,我正在寻找一种在加载/安装捆绑包时这样做的方法?虽然您不需要实际编写代码,但可以在运行时编写。这不是导入包的问题,而是类可见性的问题。这就是为什么我想重新导出一个特定的依赖项。好的,那么你需要用一个修改过的版本更新捆绑包,并根据需要更改它的清单。如果可以这样做,我就不会在运行时寻找这样做的方法;)。。。不过还是要谢谢你!保利乌斯·马图利奥尼斯,不知道你的意思,明白了!谢谢保利乌斯·马图利奥尼斯,并为此向其他人道歉!