问题标签 [bnd]
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.
java - Ant:获取 Java 类名并写入属性文件
我想在 bnd 工具的帮助下自动化我的 OSGi 清单创建。为此,我需要使用以下两行创建一个 properties.bnd 文件:
我的自动化脚本需要找到一个实现BundleActivator
接口的 java 类,在本例中是org.company.package.MyPluginActivator
. 以及它的包名称,org.company.package
在这种情况下。
理想情况下,我希望使用 Ant 自动执行此操作,但对任何其他不需要预先安装的轻量级和跨平台工具感到满意。
谢谢!
PS:我知道 Ant 属性和 PropertyFile 任务,但不知道如何获取所需 java 类的名称。
java - 如何告诉 bndtools 解析不包括“可选要求”捆绑包?
在我的应用程序中,我使用 Felix SCR 进行服务管理。但是,SCR 导入了两个包(一个可传递),其中一个org.osgi.service.http
用于启动我在运行时不需要的 HTTP 服务器。
我想从最终解决方案中删除这两个捆绑包。我该怎么做呢?我认为这是正在解析的 bnd 文件中的设置?
osgi - 多模块 Maven 项目上的 Bndtools
我目前正在将一个多模块 maven osgi 项目迁移到 bnd 工具。
我正在苦苦挣扎的是配置,build.bnd
所以我可以构建捆绑包。
如果我将一个包添加到导出列表中,我会得到:
为导出的 1 个包查找源包时出错
并在细节中:
java.lang.NullPointerException
我理解这是由于目录布局,它是一个主文件夹,包括所有项目和列出所有模块的父 pom。所以基本上结构是
并且要构建的包是 maven 项目本身,每个项目都包含自己bnd.bnd
定义的包
我已经使用 bndtools 在您创建新项目并选择所述选项时生成的所有项目将基本项目布局更改为 maven
然后我尝试编辑build.bnd
并将目录更改为类似项目的内容:
而且我仍然无法构建。
我正在使用 Windows 7,在配置插件时已经遇到了路径问题,并且必须牢记这些问题。如果您使用 UI,bndtools 核心不适用于这些路径。
osgi - 在 bndtools 中,是什么导致生成执行环境的 Require-Capability 标头?
我有以下 bnd 文件:
在生成的 MANIFEST.MF 中:
我不想要这个……我没有理由看到它应该是。那么我该如何避免呢?
java - DS 组件的生命周期如何运作?
捆绑启动和停止时调用的注释方法的顺序是什么?
我使用 aQute.bnd.annotation 的注解。
有这方面的任何文件吗?
我的猜测是:在捆绑开始时:
- 组A
- onStartUp (@Activate)
在捆绑停止:
- 未设置A
- onShutdown (@Deactivate)
我需要一个在所有对组件的服务引用都未设置后调用的方法。我可以为此使用@Deactivate 方法吗?
maven - 使用 OSGi 包中的变量配置 artifactId
我希望在我的 POM 文件中有一个动态的 artifactId 来构建一个 OSGi 包。我正在尝试在同一个 ServiceMix karaf 容器中部署配置略有不同的捆绑包的两个实例。
我正在使用 BND 插件来创建 OSGi 包,但我在 BND 中没有看到允许这样做的配置。
有没有人能够动态设置包名称,以便您可以在单个 ServiceMix 容器中部署同一包的两个版本?
谢谢。
spring - 如何将声明性服务注入我的 Spring bean
我有一个公开声明性服务的第三方库。但我有一个春豆课。
如何将此声明性服务注入到我的 spring bean 类中?
java - 如何避免让 bnd 从 Bundle-ClassPath 创建 Private-Package 条目?
我正在尝试创建一个包含 jar 及其所有依赖项(大约 20 个其他 jar)并公开我自己设计的接口的包。我不想为所有依赖项创建捆绑包,因为我想创建一个包含整个混乱的“密封组件”。
显示问题的示例 bnd 文件如下所示
(这只是一个示例......在现实世界中,Bundle-Classpath 中有大约 20 个条目)最后一行是问题所在。Include-Resource 条目会将包装好的 jar 及其所有依赖项吸到包中,效果很好。但是,将所有 jar 添加到 Bundle-ClassPath 会导致 bnd 将它们添加到 Private-Package。通常我不会在意,除了包含的 jar 中有这么多包以至于 bnd 文件变得巨大,并且 bndtools 试图创建它时爆炸了。
我尝试手动创建 Private-Package 并将其放入 bnd 文件中,但 bnd 只是覆盖它。
java - 确实存在时找不到主类
我在运行 bnd 启动器时遇到问题。实际问题是在使用 gradle 构建期间出现的,但是当我直接调用 jar 时它也不起作用。Launcher 类确实存在于那个 jar 中,并且它确实有一个 main 方法。有谁知道我为什么会收到这个错误?
当我阅读 jar 的内容时,我可以看到 Launcher 类确实存在。
我还尝试从另一个随机 jar 加载另一个随机类,并且确实有效。仅当缺少 main 方法时,我才会收到不同的错误(在类中找不到 Main 方法)。
所有这些文件的权限也是相同的,否则我也无法运行“jar tvf”。
那么,有什么想法吗?
java - 如何使用 Bndtools OSGi 项目创建动态 Web 项目。
我已经创建了一个生成 .jar 文件的 BndTools OSGi 项目。现在我想要在我的主项目中那个 jar 的 BundleContext ,即 Dynamic Web Project (.war File)。动态 web 项目不包含 bnd.bnd 文件。所以我无法注入该 jar 的依赖项。
有什么方法可以实现这一点。