问题标签 [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.
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>
apache-felix - 无法从 JBoss Fuse ESB 获取 CoreNLP 模型文件
我在 JBoss Fuse ESB 中使用CoreNLP时遇到问题。我在 ESB 上安装了 CoreNLP 及其模型
然后,当我的模块尝试使用时,models-english
我有错误日志消息
我试图通过maven-bundle-plugin
配置解决这个问题
但不幸的是它没有帮助。
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.bom
for this Fuse 中获取的。camel-beanio version
is2.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 中删除它,因为 * 在搜索代码后包含它。
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”?还是需要包装类型“捆绑”?
我感谢任何回应和暗示我可以尝试直接在原始工件中完成重新捆绑。
非常感谢。
问候蒂莫·罗尔伯格
osgi - 如何自动化 bndtools 构建
我对 OSGi 世界比较陌生,需要帮助来了解如何自动化我的构建过程。我熟悉了在 Eclipse 中使用 bndtool 并学会了如何解决依赖关系、运行、测试、调试和生成独立的 jar。我还浏览了 OSGi 官方网站上发布的基本和 Maven 教程。我的问题是如何自动化我的构建!所以,假设我有 SVN 中的代码。我需要能够检查代码,然后运行构建脚本/工具来生成我的包,然后我可以使用 Felix 或 Karaf 进行部署。基于 Maven 的官方教程(使用 OSGi enRoute)仅显示了如何生成我不感兴趣的独立 jar;我需要生成捆绑包。我阅读了有关 Maven Bundle Plugin 的信息,但我认为在使用它时,我将失去 Eclipse 提供的基于 UI 的 bndtools 的所有奢华。
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 中有更高版本的快照,我如何将快照限制为依赖项
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 注释生成元类型数据,而不必定义一个每个组件的专用配置类?
osgi - 未解决的需求:osgi.component
我正在尝试在 Karaf 上开发一个包含 REST API 和来自定制服务的调用的 OSGi WAB。但是,出于某种奇怪的原因,OSGi 框架抱怨功能不满意,osgi.component
.
我想知道:
- 我该如何解决这个问题?
- 什么是
osgi.component
捆绑?为什么需要? - 为什么 maven-bundle-plugin(因此也是 bnd)在条目“Require-Capability”中声明它?
- 如果我需要在 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)))]
清单文件:
休息基类:
感谢您的回复
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,但这不是必需的,我个人认为排除未知的依赖。
annotations - 通过 org.osgi.service.component 注解抽象组件
我正在从org.apache.felix.scr
注释迁移到org.osgi.service.component
注释。我有一组从通用抽象类继承的组件。在 felix 的情况下,我可以在超类上使用@Component
带有选项的注解componentAbstract=true
,然后@Reference
在超类中使用注解。我找不到如何将其迁移到 osgi 注释。
是否可以在组件的超类中使用组件注释?如果是这样,那么处理属性和元类型生成的适当方法是什么?
所以,我正在寻找的是这样的东西