gpt4 book ai didi

java - Eclipse OSGI 未满足约束

转载 作者:行者123 更新时间:2023-12-01 11:27:04 26 4
gpt4 key购买 nike

我在 Eclipse 中有一个基本的 OSGI 项目。当我创建一个类 Activator 并导入 BundleActivator 时,Eclipse 更改了 MANIFEST.MF,添加了以下几行:

Export-Package: my.package.name;uses:="org.osgi.framework";version="0.0.1.SNAPSHOT"
Import-Package: org.osgi.framework;version="[1.8,2)"

现在 Eclipse(“问题 View ”)提示此错误消息:

Unsatisfied constraint: 'Import-Package: org.osgi.framework; version="[1.8.0,2.0.0)"'   Plug-in Problem MANIFEST.MF

我已经导入了最新的 Apache Felix 运行时,并且可以将其作为 Maven 依赖项找到,但是当从 Eclipse 中运行时,这并不能解决问题。

我需要更改什么来解决依赖性?为什么它打印版本1.8.0、2.0.0?

更新

pom.xml 的插件部分:

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>

<configuration>
<manifestLocation>src/main/resources/META-INF</manifestLocation>
<rebuildBundle>true</rebuildBundle>
<instructions>

<Bundle-Activator>my.package.name.Activator</Bundle-Activator>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-RequiredExecutionEnvironment>JavaSE-1.7</Bundle-RequiredExecutionEnvironment>

</instructions>
</configuration>

<!-- EXECUTION -->

<extensions>true</extensions>
<executions>
<execution>
<id>set_failok</id>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
<_failok>true</_failok>
</instructions>
</configuration>
</execution>
</executions>
</plugin>

pom.xml 的依赖部分(导入效果很好):

<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>5.0.0</version>
</dependency>

最佳答案

maven 包插件会查看您所依赖的包的 list 以确定包版本。

它发现您使用包 org.osgi.framework 并且 felix Framework 5.0.0 导出此包的版本为 1.8.0。因此,它会创建从此版本开始的导入范围,直到排除下一个主要版本。

所以你的 list 看起来不错。您无法从 eclipse 运行的原因可能是您使用了较低的 OSGi 框架版本,该框架不提供上述软件包的 1.8.0 版本。尝试使用felix框架5.0.0运行。

关于java - Eclipse OSGI 未满足约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30731268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com