微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Protege,Maven / OSGi-无法解决插件:未解决的要求

如何解决Protege,Maven / OSGi-无法解决插件:未解决的要求

我正在编写Protege插件。 确实,我正在使用here中的示例插件
我有一个自己编写的jar文件,正在尝试将其集成到插件中。
首先,我bundled jar,然后将捆绑的jar添加到本地maven存储库中。
这是后来创建的Manifest.mf:

Manifest-Version: 1.0
Bnd-LastModified: 1599041581223
Bundle-ManifestVersion: 2
Bundle-Name: de.mg.code
Bundle-SymbolicName: de.mg.code
Bundle-Version: 2.0
Created-By: 14.0.2 (N/A)
Export-Package: entw.alg;version="2.0"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
Tool: Bnd-5.1.2.202007211702

我的pom.xml看起来像这样:

    <dependency>
        <groupId>de.mg.code</groupId>
        <artifactId>alg</artifactId>
        <version>2.0</version>
    </dependency>

..

    <instructions>
                    <Bundle-Activator>org.protege.editor.owl.ProtegeOWL</Bundle-Activator>
                    <Bundle-Classpath>.</Bundle-Classpath>
                    <Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>

                    <Embed-Transitive>true</Embed-Transitive>
                    <Embed-Dependency>
                        de.mg.code
                    </Embed-Dependency>
                    <Import-Package>
                        org.protege.editor.owl.*;version="5.0.0",<!--equivalent to [5.0.0,infinity) -->
                        *
                    </Import-Package>
     </instructions>

清洁后,包裹收到1条警告

Bundle-Activator org.protege.editor.owl.ProtegeOWL被导入到包中,而不是包含在包中。通常是捆绑包装错误

以下是新plugin.jar的Manifest.mf中的Imports / Exports:

Embed-Dependency: de.mg.code
Embed-Transitive: true
Export-Package: thm.ontology;uses:="javax.swing,org.protege.editor.owl.model,org.semanticweb.owlapi.model";version="0.1.0",edu.stanford.bmir.protege.examples.view;uses:="javax.swing,org.protege.editor.owl.ui.view";version="0.1.0",edu.stanford.bmir.protege.examples.tab;uses:="org.protege.editor.owl.ui";version="0.1.0",edu.stanford.bmir.protege.examples.menu;uses:="org.protege.editor.owl.ui.action";version="0.1.0"    
Import-Package: org.protege.editor.owl;version="5.0.0",org.protege.editor.owl.model;version="5.0.0",org.protege.editor.owl.model.event;version="5.0.0",org.protege.editor.owl.model.selection;version="5.0.0",org.protege.editor.owl.ui;version="5.0.0",org.protege.editor.owl.ui.action;version="5.0.0",org.protege.editor.owl.ui.view;version="5.0.0",entw.alg;version="[2.0,3)",javax.swing,org.semanticweb.owlapi.apibinding;version="[4.2,5)",org.semanticweb.owlapi.model;version="[4.2,org.semanticweb.owlapi.search;version="[4.2,org.slf4j;version="[1.7,2)",thm.ontology

如果我尝试将创建的jar加载到protege中,则会收到错误消息:

org.osgi.framework.BundleException:无法解析exmaple.plugin [33](R 33.0):缺少要求[example.plugin [33](R 33.0)] osgi.wiring.package; (&(osgi.wiring.package = entw.alg)(版本> = 2.0.0)(!(版本> = 3.0.0)))未解决的要求:[[example.plugin [33](R 33.0)] osgi .wiring.package; (&(osgi.wiring.package = entw.alg)(版本> = 2.0.0)(!(版本> = 3.0.0))))] 在org.apache.Felix.framework.Felix.resolveBundleRevision(Felix.java:4111)〜[org.apache.Felix.main.jar:na] 在org.apache.Felix.framework.Felix.startBundle(Felix.java:2117)〜[org.apache.Felix.main.jar:na] 在org.apache.Felix.framework.Felix.setActiveStartLevel(Felix.java:1371)〜[org.apache.Felix.main.jar:na] 在org.apache.Felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)[org.apache.Felix.main.jar:na] 在java.lang.Thread.run(Thread.java:745)[na:1.8.0_121]

这给我留下了很多问题。我认为这会起作用,因为这是推荐的方法。有人有消除错误的想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?