如何解决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 举报,一经查实,本站将立刻删除。