【发布时间】:2016-01-30 19:10:21
【问题描述】:
我尝试使用 apache karaf 使用 karaf 开发人员指南中提到的 maven 原型创建 osgi 包。
mvn archetype:generate \-DarchetypeGroupId=org.apache.karaf.archetypes \-DarchetypeArtifactId=karaf-bundle-archetype \-DarchetypeVersion=4.0.0 \-DgroupId=com.mycompany \-DartifactId=TestBundle \-Dversion=1.0.0-SNAPSHOT \-Dpackage=com.mycompany.newpkg
所以我创建了一个目录 TestBundle,然后我在这里做了“mvn install”。因此在目标文件夹中创建了包(jar 文件)。当我在部署时复制此文件夹时,我看到它已安装,但在重新启动时,我在下面看到此问题
karaf@victoria>bundle:list | grep Test
396 | Installed | 80 | 1.0.0.SNAPSHOT | TestBundle Bundle
karaf@victoria>bundle:info 396
TestBundle Bundle (396)
-----------------------
karaf@victoria>bundle:restart 396
Error executing command: Error restarting bundles:
Unable to start bundle 396: The bundle "TestBundle_1.0.0.SNAPSHOT [396]"
could not be resolved. Reason: Missing Constraint:
Import-Package: org.osgi.framework; version="[1.8.0,2.0.0)"
我的 pom.xml 导入包只有一颗星。 *
Manifest-Version: 1.0
Bnd-LastModified: 1446200540685
Build-Jdk: 1.8.0_51
Bundle-Activator: com.mycompany.newpkg.Activator
Bundle-Description: TestBundle OSGi bundle project.
Bundle-ManifestVersion: 2
Bundle-Name: TestBundle Bundle
Bundle-SymbolicName: TestBundle
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: com.mycompany.newpkg;version="1.0.0.SNAPSHOT";uses:="org
.osgi.framework"
Import-Package: org.osgi.framework;version="[1.8,2)"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
Tool: Bnd-2.4.1.201501161923
【问题讨论】:
-
您能否添加指向您所指的“karaf 开发人员指南”的链接。您能否将捆绑包的
MANIFEST.MF的内容添加到问题中。关于 POM<Import-Package>:“很少需要明确指定此标头。” -
link - 这是我找到 maven 原型的地方。
-
Manifest-Version: 1.0 Bnd-LastModified: 1446200540685 Build-Jdk: 1.8.0_51 Bundle-Activator: com.mycompany.newpkg.Activator Bundle-Description: TestBundle OSGi bundle 项目。 Bundle-ManifestVersion:2 Bundle-Name:TestBundle Bundle-SymbolicName:TestBundle Bundle-Version:1.0.0.SNAPSHOT 创建者:Apache Maven Bundle Plugin Export-Package:com.mycompany.newpkg;version="1.0.0。 SNAPSHOT";uses:="org .osgi.framework" Import-Package: org.osgi.framework;version="[1.8,2)" Require-Capability: osgi.ee;filter:="(&(osgi.ee =JavaSE)(version=1.5))" 工具:Bnd-2.4.1.201501161923
-
您是否意识到在 cmets 中格式化是有限的?这就是我写“请将内容...添加到问题”的原因。请参阅问题标签下方的 edit 链接。
-
对不起。将内容添加到问题中。
标签: maven osgi osgi-bundle karaf