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

Pax Exam:提供包含所有依赖项的捆绑包

万俟亦
2023-03-14

目前,要为Pax考试设置配置,我发现需要包含所有依赖项。比如说

@Configuration
public Option[] сonfig() {
    MavenArtifactProvisionOption commonsDbcp = mavenBundle("commons-dbcp",
            "commons-dbcp");
    MavenArtifactProvisionOption commonsPool = mavenBundle("commons-pool",
            "commons-pool");
    ...
    return options(
            felix(),
            provision(commonsDbcp, commonsPool));
}

但是由于commons-dbcp依赖于commons-pool,这感觉像是重复的信息。Pax Exam是否可能在不明确添加的情况下发现需要commons dbcp

共有1个答案

满元凯
2023-03-14

不是真的。。。

  • 并非每个OSGi捆绑包的Maven依赖项都是OSGi捆绑包
  • 依赖项可能只是一个接口,在运行时,您希望提供一个实现包

显式列出所有捆绑包是预配框架的唯一安全方法。至少,您可以使用versionAsInPom()选项方法来避免重复工件版本。

 类似资料:
  • 我是OSGi的新手。我正在使用Apache Felix。我已经构建了一个捆绑包,并且具有依赖性。当我尝试使用启动它会给我这个错误。 org . OSGi . framework . bundle exception:无法解析lk . ucsc . research . belly runner[20](R 20.0):缺失需求[lk . ucsc . research . belly runner

  • 我创建了一个依赖于SLF4J的捆绑包,因此使用Logback来实现OSGI。这一切都捆绑起来并安装正常,但是当我开始捆绑时,我得到以下异常: org.osgi.framework.BundleException: 無法解析 com.felix.test [20](R 20.0): missing requirements [com.felix.test [20](R 20.0)] osgi.wir

  • 简单的OSGi应用程序与包内的依赖关系。 我在玩karaf。我从写一个简单的Rest应用程序开始。https://github.com/YaroslavTir/osgi-jersey-hibertate/tree/stackoverflow/examples/karaf-rest-core 我将karaf示例作为backbond,使用restendpoint运行我的第一个包非常简单,但是当我添加m

  • 我想要一个胖罐子,但是没有提供的依赖项。因此,我使用以下两个插件: https://github.com/johnrengelman/shadow 还有一个身材。如下所示的渐变文件: 但是,当我运行时,我的胖罐子中仍然有所有的rangeCache类。如何从我的胖罐子中排除提供的依赖项? 编辑1:这似乎也不起作用,暂时的依赖仍然被复制到胖罐子里。 编辑2:根据Stanislav的回答,我做了以下工作

  • 在上,使用require ex调用所有库。 并生成一个包含jquery的bundle

  • 以前部署的JDOM的OSGi包究竟是如何解决这些相同的依赖关系的?它们从来没有在捆绑进口包中列出?此外,如果我试图将这些作为项目的依赖项包含并嵌入它们,只会加剧问题。救命啊!