Dependencies 我可以使用ApacheFelixMaven Bundle插件声明类似依赖项的私有包吗?

Dependencies 我可以使用ApacheFelixMaven Bundle插件声明类似依赖项的私有包吗?,dependencies,osgi,maven-plugin,apache-felix,osgi-bundle,Dependencies,Osgi,Maven Plugin,Apache Felix,Osgi Bundle,我可以使用ApacheFelixMaven Bundle插件声明类似依赖项的私有包吗 我希望避免NoClassDefFoundException,因为传递依赖项的版本不同 下面我可以看到org.apache.felix.log.impl,但是在这个示例中,声明为private的依赖项是一个自己的类 我不知道该语句是否适用于依赖项。对于位于依赖项内部的包,可以使用私有包。结果将是包的内容嵌入到包中 但是要小心,因为这将导致该包中所有类的所有导入都使用Import-Package语句。所以实际上,在

我可以使用ApacheFelixMaven Bundle插件声明类似依赖项的私有包吗

我希望避免NoClassDefFoundException,因为传递依赖项的版本不同

下面我可以看到
org.apache.felix.log.impl
,但是在这个示例中,声明为private的依赖项是一个自己的类


我不知道该语句是否适用于依赖项。

对于位于依赖项内部的包,可以使用私有包。结果将是包的内容嵌入到包中


但是要小心,因为这将导致该包中所有类的所有导入都使用Import-Package语句。所以实际上,在中可能会使您的情况更糟。

谢谢您的回复。我是这么想的,但我想知道Eclipse是如何解决这个问题的。也许Eclipse使用了类似的东西?在这种情况下,BND与OSGi捆绑包兼容?您所说的Eclipse是什么意思?EclipseRCP还是IDE的插件透视图?Eclipse解决了这个问题,如果您查看pom.xml文件中的Dependency部分,您可以看到Eclipse用其他依赖项提供的最新依赖项替换了可传递依赖项。你明白吗?现在我明白你的意思了。这是maven或eclipse中m2e插件的逻辑。在OSGi中,这些依赖关系并不相关。您可以使用带有包和版本范围的导入包来表示依赖关系。这就是在运行时决定哪个包可以提供这样的包的原因。OSGi还将使用符合导入版本范围的软件包的最高版本号。我会这样做,我希望这能奏效。我以后会告诉你的。谢谢你的帮助!;)