问题标签 [maven-bundle-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
597 浏览

maven - OSGi maven-bundle-plugin 忽略了我的包

我在 Fuse 中有一个 CXF Web 服务应用程序,它在骆驼上下文 xml 文件中引用了一个包含我从 WSDL 生成的文件的 jar。

com.whatever.*在我的<Import-Package>列表中。jar 在我的 Maven 依赖项中。我可以说import com.whatever.IWebService;,它没有抱怨。

但是 maven-bundle-plugin 在 MANIFEST.MF 中不包含这个包

它包括我要求的所有其他包裹。但不是这个。所以在 Fuse 中,当我部署它时,我得到 ClassNotFoundException,指的是 context.xml 类加载。

这是非常令人沮丧的。有没有办法强制插件导入某个包?因为他们的自动魔法依赖求解器忽略了我的<Import-Package>

0 投票
1 回答
61 浏览

apache-felix - 无法从 JBoss Fuse ESB 获取 CoreNLP 模型文件

我在 JBoss Fuse ESB 中使用CoreNLP时遇到问题。我在 ESB 上安装了 CoreNLP 及其模型

然后,当我的模块尝试使用时,models-english我有错误日志消息

我试图通过maven-bundle-plugin配置解决这个问题

但不幸的是它没有帮助。

0 投票
2 回答
338 浏览

maven - org.beanio 的 OSGi 依赖项未解决

我正在尝试OSGify我的项目。

我正在使用Fuse jboss-fuse-6.2.1.redhat-084,如果我查看osgi:headers包,我会收到红色错误org.beanio

错误:

缺少要求 osgi.wiring.package;(&(osgi.wiring.package=org.beanio)(version>=2.1.0)(!(version>=3.0.0))))

我没有明确地导入beanio自己:它是从org.jboss.fuse.bomfor this Fuse 中获取的。camel-beanio versionis2.15.1.redhat-621084和 that使用org.beanio v2.1.0.

我已经用 grep 搜索了osgi:classes,但没有使用 v3.0。此外,v3.0 甚至不存在。所以,我不知道它从哪里得到“[2.1,3)”。

我想出了如何指定 2.1.0,但它只是抱怨它找不到 2.1.0。

那我该怎么办?什么都没有导出 2.1.0。但我无法从 Import-Package 中删除它,因为 * 在搜索代码后包含它。

0 投票
1 回答
3719 浏览

jar - 使用 maven-bundle-plugin 在 JAR 中嵌入依赖项不起作用

我成功地将 OSGi 特定元数据添加到 fly-saucer-pdf Maven 工件的清单中。但是,我没有成功将该工件的依赖项和传递依赖项嵌入到创建的 JAR 文件中。

我使用了从 GitHub [1] 获取的来自 fly-saucer-pdf 的原始资源,并将以下语句添加到 pom.xml 文件中:

该工件在其原始 pom.xml 中声明了对 itext 版本 2.1.7 的依赖项,我没有触及。我也没有弄乱 jar 工件的原始包装类型。

不幸的是,这只是部分工作。MANIFEST.MF 似乎正确并包含预期的 OSGi 标签:

但是 itext 库没有放入生成的 JAR 中,即 MANIFEST 的 Bundle-ClassPath 条目指向缺少的内容。

此外,我尝试创建一个全新的工件,该工件声明对原始 fly-saucer-pdf 工件的依赖,并将其重新捆绑为 OSGi 捆绑包,在 StackOverflow 上传递此答案 [2],这很有效。

我能看到的唯一真正区别是包装类型“捆绑”与“罐子”。但是我无法更改原始 fly-saucer-pdf 工件中的包装类型,因为对于非 OSGi 使用,一切都需要保持原样,以便将该更改作为推送请求接受。

你们知道这种嵌入依赖关系与 maven-bundle-plugin 是否可以实际使用包装类型“jar”?还是需要包装类型“捆绑”?

我感谢任何回应和暗示我可以尝试直接在原始工件中完成重新捆绑。

非常感谢。

问候蒂莫·罗尔伯格

0 投票
4 回答
413 浏览

osgi - 如何自动化 bndtools 构建

我对 OSGi 世界比较陌生,需要帮助来了解如何自动化我的构建过程。我熟悉了在 Eclipse 中使用 bndtool 并学会了如何解决依赖关系、运行、测试、调试和生成独立的 jar。我还浏览了 OSGi 官方网站上发布的基本和 Maven 教程。我的问题是如何自动化我的构建!所以,假设我有 SVN 中的代码。我需要能够检查代码,然后运行构建脚本/工具来生成我的包,然后我可以使用 Felix 或 Karaf 进行部署。基于 Maven 的官方教程(使用 OSGi enRoute)仅显示了如何生成我不感兴趣的独立 jar;我需要生成捆绑包。我阅读了有关 Maven Bundle Plugin 的信息,但我认为在使用它时,我将失去 Eclipse 提供的基于 UI 的 bndtools 的所有奢华。

0 投票
0 回答
163 浏览

osgi - Maven 发布版本构建从 .m2 获取快照依赖项

我在主干(1.5.0-SNAPSHOT)和分支(1.4.0)有项目 A & B

B 在 A 中具有依赖性所以,pom.xml 为 A:

当为 A 提供发布版本时,在我的 ./m2 中,发布和快照 jar 都存在,即 (B-1.5.0-SNAPSHOT) 和 (B-1.4.0)。

(B-1.5.0-SNAPHOT) 即使在存储库级别禁用快照后也被视为依赖项。

如果 (B-1.5.0-SNAPSHOT) 在 ./m2 中不存在,则它正在使用或从 nexus (B-1.4.0) 下载作为预期的依赖项

注意:不使用 Maven 发布插件

我们将 Atlasssian Bamboo 用于 maven 构建,因此在某些情况下会发生这些情况。当快照(主干)和发布(分支)构建一个接一个

所以,在我的情况下,如果我的本地 .m2 中有更高版本的快照,我如何将快照限制为依赖项

0 投票
2 回答
661 浏览

osgi - 使用 maven-scr-plugin 和 OSGI R6 注释生成元类型描述

我正在使用 maven-scr-plugin 生成组件和元类型描述。我正在从 org.apache.felix.scr 注释迁移到 org.osgi.service.component 注释。

Carsten Ziegeler 在这里写了一篇关于如何进行迁移的优秀博客。但是,这并没有解释如何从组件注释中直接生成元类型描述。相反,我必须为每个组件单独配置@interface,并重写所有组件激活器(至少,利用那些额外的@interface 类的附加值)。

我仍然可以使用 maven-scr-plugin 通过添加对org.apache.felix.scr.ds-annotations. 但是,maven-scr-plugin 仅在显式打开时输出元类型信息。使用 felix 注释,注释中的专用参数metatype=true@Component用于启用元类型生成。@Component但是,这样的参数在 OSGi 版本的注解中不可用。

有没有办法强制 maven-scr-plugin 生成元类型描述,或者我可以让 maven-bundle-plugin(或 bndtools)基于 osgi @Component 注释生成元类型数据,而不必定义一个每个组件的专用配置类?

0 投票
1 回答
5052 浏览

osgi - 未解决的需求:osgi.component

我正在尝试在 Karaf 上开发一个包含 REST API 和来自定制服务的调用的 OSGi WAB。但是,出于某种奇怪的原因,OSGi 框架抱怨功能不满意,osgi.component.

我想知道

  1. 我该如何解决这个问题?
  2. 什么是osgi.component捆绑?为什么需要?
  3. 为什么 maven-bundle-plugin(因此也是 bnd)在条目“Require-Capability”中声明它?
  4. 如果我需要在 OSGi 框架上安装它,我在哪里可以找到它?

一些附加信息:

  • 卡拉夫版本:4.0.7;
  • Maven 捆绑插件:3.2.0;
  • 操作系统:Windows 10 64 位;
  • IDE:日食霓虹灯;

一些提供附加信息的代码:

整个错误:

执行命令时出错:在捆绑包上执行命令时出错:启动捆绑包 96 时出错:无法解析 com.massimobono.karaf.examples.user-fully-rest [96](R 96.0):缺少要求 [com.massimobono.karaf.examples.用户完全休息 [96](R 96.0)] osgi.extender;(&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0))) 未解决的要求:[[com.massimobono.karaf.examples.user-fully-rest [ 96](R 96.0)] osgi.extender;(&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))]

清单文件:

休息基类:

感谢您的回复

0 投票
1 回答
206 浏览

java - 如何在maven-bundle-plugin生成的Manifest中识别包版本的来源

我正在使用 maven-bundle-plugin 从 Maven 模块创建一个 OSGI 包。

不幸的是,似乎有一个暴露javax.annotation的依赖项。因此,生成的清单包含Import-Package: javax.annotation;version="[3.2,4)"

如何找出哪个依赖项导出了这个包?通过使用mvn dependency:list,我已经能够排除一些依赖项(com.google.code.findbugs:annotations 和 com.google.code.findbugs:jsr305),但版本范围仍然存在。我一直在查看直接依赖项的清单文件,但没有找到任何其他导出 javax.annotation 的 jar。

注意:我可以向 javax.annotation:com.springsource.javax.annotation 添加一个依赖项,并且 Manifest 将正确导入 javax.annotation 版本 1.0.0,但这不是必需的,我个人认为排除未知的依赖。

0 投票
1 回答
3520 浏览

annotations - 通过 org.osgi.service.component 注解抽象组件

我正在从org.apache.felix.scr注释迁移到org.osgi.service.component注释。我有一组从通用抽象类继承的组件。在 felix 的情况下,我可以在超类上使用@Component带有选项的注解componentAbstract=true,然后@Reference在超类中使用注解。我找不到如何将其迁移到 osgi 注释。

是否可以在组件的超类中使用组件注释?如果是这样,那么处理属性和元类型生成的适当方法是什么?

所以,我正在寻找的是这样的东西