当前位置: 首页 > 知识库问答 >
问题:

如何在OSGi中添加特定包版本的导入包

卜季萌
2023-03-14

我的项目有两个OSGi包(A和B),它们需要使用不同版本的javax.activation-A需要1.1.0版本,而B需要1.1.1版本。

如果我在这个sling.properties文件中给出的javax.activation的版本大于1.1.1,那么a和B都使用系统版本(尽管manifest.mf文件中指定了import-packages的版本);但如果我给出的版本小于1.1.1,那么两个包都使用AEM提供的版本。

如何配置我的Bundle,以便为Bundle A和Bundle B使用不同版本的javax.activation?

共有1个答案

廉雅惠
2023-03-14

如果您希望在包A中完全使用1.1.0版本,则应该在A的清单文件中指定:

Import-Package: javax.activation;version="[1.1.0,1.1.0]"

对于包B的清单将是:

Import-Package: javax.activation;version="[1.1.1,1.1.1]"
 类似资料:
  • 问题内容: 来自我曾经通过告诉从甚至直接从控制台安装该版本的lib 的环境,我曾经将供应商的lib的特定版本安装到项目文件夹()中,如下所示: 然后,我通常使用以下命令在项目中导入该软件包的该版本: 现在,我想对做同样的事情。我怎样才能做到这一点?是否可以安装特定版本的软件包?如果是这样,使用集中式,如何导入一个版本而不是另一个版本? 我会做这样的事情: 但是,如何在导入过程中有所作为? 问题答案

  • 提前感谢。我有问题启动一个osgi捆绑包,它给出了这个错误消息:包/捆绑包将不安装。它编译,并构建好,当部署到Karaf时,它不会加载和抱怨丢失的布线包,看起来像是正在导出和导入。但是缺少一个版本id。 执行命令时出错:无法启动bundle mvn:com。通用电气。数字的passthru/passthrumt1。dataserviceimpl/1.0.1-SNAPSHOT在功能部件passthr

  • 使用1.01.0等捆绑版本合法吗?找不到有关如何工作的任何信息。我使用OSGI的Apache Felix实现。

  • 问题内容: 我是新手,正在研究要本地化的示例代码。 在原始的导入语句中,它是: 现在我已经和包 所以我将import语句转换为: 但是当我运行时,出现以下错误: 另外,当我在导入语句中使用and 代替and 时,得到: 我怎样才能解决这个问题? 问题答案: 好吧,我发现了问题所在。基本上,导入的开始路径是 所以我只需要在包名称前面添加,即导入应该是:

  • 如何使用作曲家添加/更新特定的包?我也在使用最新的Laravel,不确定它是否重要,但任何可以帮助确定答案的东西。 我也尝试了以下从我发现的旧Stackoverflow帖子,但它不适合我。它将包附加到composer.json,然后继续更新所有内容。以下是链接:如何使用Composer更新单个库? 下面是我试图添加到项目中的包:https://github.com/barryvdh/laravel