我用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:无法构建程序集:无法解决根:缺少需求根osgi.identity;osgi.identity=core.util;type=osgi.bundle;version=“1.0.SNAPSHOT,1.0.SNAPSHOT”;resolution:=mandatory [原因:无法解决core.util/1.0.0.SNAPSHOT:缺少需求core.util/1.0.0.SNAPSHOT osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"] -> Help 1
我不明白错误信息,在这里找不到什么?我有1.0.0.SNAPSHOT版本的core.util包,所以一切都应该正常工作。这里有什么问题?如何将我的捆绑包包含在karaf程序集中?
发布于 2017-02-09 23:29:03
如我所知,karaf插件的karaf组装目标是从引用的特性描述符进行分发。要做到这一点,首先要创建一个特性描述符,其中包含您的包定义和所需的特性定义,然后使用该特性描述符作为karaf程序集pom的依赖项。因此,我认为问题在于,直接将包定义为正常依赖关系。
https://stackoverflow.com/questions/42112623
复制相似问题