【发布时间】:2017-06-26 00:59:45
【问题描述】:
我使用 maven-bundle-plugin 创建了一个示例包项目,并创建了以下 MANIFEST.MF:
Manifest-Version: 1.0
Bnd-LastModified: 1486554665411
Build-Jdk: 1.8.0_121
Bundle-Description: Helper classes
Bundle-ManifestVersion: 2
Bundle-Name: core.util
Bundle-SymbolicName: core.util
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: com.example.core.util;version="1.0.0",com.example.core.util.ex
tension;version="1.0.0"
Originally-Created-By: Apache Maven Bundle Plugin
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Tool: Bnd-3.2.0.201605172007
现在我已经将该捆绑包作为依赖项添加到使用 maven-karaf-plugin 构建的程序集:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>example-karaf-dist</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>karaf-assembly</packaging>
<dependencies>
(...)
<dependency>
<groupId>com.example</groupId>
<artifactId>core.util</artifactId>
<version>${taxcloud.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>4.0.7</version>
<extensions>true</extensions>
<configuration>
<bootFeatures>
<feature>standard</feature>
<feature>webconsole</feature>
</bootFeatures>
</configuration>
</plugin>
</plugins>
</build>
</project>
但是,由于出现以下错误,我无法构建:
未能执行目标 org.apache.karaf.tooling:karaf-maven-plugin:4.0.7:assembly 项目示例-karaf-dist 上的(默认程序集):无法构建 程序集:无法解析根:缺少要求 [根] osgi.identity; osgi.identity=core.util;类型=osgi.bundle; 版本="[1.0.0.SNAPSHOT,1.0.0.SNAPSHOT]";分辨率:=强制 [原因:无法解析 core.util/1.0.0.SNAPSHOT:缺失 要求 [core.util/1.0.0.SNAPSHOT] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.8))"] -> [帮助1]
我无法理解错误信息,这里找不到什么?我在 1.0.0.SNAPSHOT 版本中有 core.util 包,所以一切都应该工作。这里有什么问题?如何在 karaf 程序集中包含我的包?
【问题讨论】:
-
您使用哪个 java 版本进行构建?
-
@ChristianSchneider 1.8,并且清单包含使用该版本构建的信息。
-
你上面的 pom 格式错误:
com.example/groupId> -
@I-LOVE-2-REVIVE 感谢您的发现,但原件是非/格式错误
标签: maven osgi apache-karaf