问题标签 [bndtools]
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 - Eclipse:.classpath 包含一个在持续集成期间不可用的库
即使 jar 文件 osgi.core-4.0.1.jar 在我的本地 .bnd 文件夹中,我也会收到此错误。
错误出现<?xml version="1.0" encoding="UTF-8"?>
在我项目的主 API (com.mycompany.test.api) 中 .classpath 的第 1 行 ( )
可能是什么问题呢?提前谢谢大家。
java - 如何在 Eclipse 中添加外部 jar
我无法从我的 Eclipse 存储库中成功添加和使用这些外部 jar。
org.apache.felix.dependencymanager.annotation-4.0.3
org.apache.felix.dependencymanager.runtime-4.0.2
org.apache.felix.dependencymanager.shell-4.0.3
org.apache.felix.dependencymanager-4.2.0
我在“将文件添加到存储库”窗口中没有收到任何错误:
但是,在单击“完成”按钮后,我会收到一个错误警告弹出窗口。
然后,每当我将它们从“可用捆绑包”选项卡添加到“运行要求”选项卡中时,我都会收到以下错误,然后尝试解决“运行要求” (即使我已经添加了所有 jar)。
如何成功地将这些 jar 文件添加和使用到我的项目中?
蚀
面向 Web 开发人员的 Eclipse Java EE IDE。
版本:Mars.1 版本 (4.5.1)
内部版本号:20150924-1200
爪哇:
java 版本“1.8.0_60”
Java(TM) SE 运行时环境(构建 1.8.0_60-b27)
java - 带有 lombok 的 Bndtools“包含未知容器”
我终于完成了将我的应用程序的一部分移动到 osgi 包中,并在我的主机应用程序中使用这些包。这真的很好用!
目前我正在使用 bndtools 清理我的 eclipse 工作区并消除警告。
我无法摆脱的一个警告是:
我在我的一些捆绑包中使用了 lombok。我只是将它添加到项目属性 > java 构建路径 > 库选项卡中。很好用,因为 lombok 是 Eclipse 中用于编译时间的库。但这里的问题是我确实收到了上述警告。
我在本地 bndtools 存储库(存储库视图)中添加了一些外部 jar(带有捆绑信息),然后可以将这些 jar 添加到 bndtools 构建路径,例如 gson。
但是 lombok 似乎没有任何 osgi 捆绑信息,因此将其添加到本地存储库会给我一个错误“Jar 没有符号名称”。
当然,我可以编辑 lombok.jar 并添加捆绑信息。但我想知道是否有更清洁的方法来做到这一点?
osgi - Bndtools 和 org.osgi.util.tracker 包
我在 Eclipse IDE 中使用 Bndtools。它很棒并且工作正常。我可以将 osgi.core 包添加到编辑 bnd 文件的“构建路径”中(它使用 bndtools 存储库)。现在我需要 org.osgi.util.tracker 包,但在编辑 bnd 文件的“构建路径”中找不到它。我该怎么做 ?
谢谢,保罗
java - Bndtools 项目无法运行
我一直在尝试在我的 Eclipse IDE 上运行 Bndtools 项目,但没有成功。我已经通过 Eclipse Marketplace 安装了 Bndtools,如此处所述(安装 Bndtools)。然后我尝试按原样遵循这个教程(Bndtools Tutorial),但我似乎无法将它打印到控制台。我尝试了各种其他项目,但都没有成功。任何地方都不会抛出任何错误。
我应该指出,Bndtools 安装并没有随所有存储库一起提供。我特别想念所有org.apache.felix.dependencymanager依赖项。我已通过拖放成功地将它们添加到我的 Eclipse 存储库到Build Repositories bundles 组中,没有任何错误:
org.apache.felix.dependencymanager.annotation-4.0.3
org.apache.felix.dependencymanager.runtime-4.0.2
org.apache.felix.dependencymanager.shell-4.0.3
org.apache.felix.dependencymanager-4.2.0
为什么我的项目不能像其他人一样运行?在 Bndtools 项目成功运行之前,我还需要做些什么吗?
蚀
面向 Web 开发人员的 Eclipse Java EE IDE。
版本:Mars.1 版本 (4.5.1)
内部版本号:20150924-1200
爪哇:
java 版本“1.8.0_60”
Java(TM) SE 运行时环境(构建 1.8.0_60-b27)
osgi - 需要 OSGi 配套捆绑包吗?
我在 Eclipse 中有两个基于 Bndtools 的不同项目。第一个生成带有以下清单的 JAR:
第二个有以下清单:
这两个项目需要 osgi.cmpn :第一个用于 ServiceTracker(包 org.osgi.util.tracker),第二个用于 ManagedService(包 org.osgi.service.cm)。
第一个项目效果很好:我安装并启动捆绑包没有问题。我可以从第二个项目安装包,但是当我启动它时,我收到以下错误:
有什么问题 ?如果两个项目都需要 osgi.cmpn JAR ...为什么第一个在启动时不抛出此错误?
谢谢,保罗。
osgi - Eclipse 下使用 Bndtools 配置 Apache Felix FileInstall
我在 Eclipse Mars 下使用 Bndtools 插件。在一个项目中,我需要 Apache FileInstall 包,并且我在运行描述符下的“运行要求”中选择了它。捆绑包处于活动状态。
我不明白如何获取 FileInstall 的当前参数,如轮询、监视配置文件的目录等等,所以我不知道将实现 ManagedService 的类的配置文件放在哪里。
如果我尝试在 VM 参数下添加以下行...
-Dfelix.fileinstall.dir=/home/ppatierno/Downloads
几秒钟后,Config Admin 服务进入 Stopping 状态。
如果我没有在“运行要求”下添加 FileInstall 包,而是从 apache felix 控制台安装并启动它,它会启动并变为活动状态,但不会打印属性上方的主要配置。
任何想法 ?
java - 使用 bndtools 包装从默认包导入的第三方 jar
我想包装一个第三方罐子。不幸的是,供应商将一个具有一种方法的单一类(a.class)放入默认包中。
当我尝试使用 包含资源Include-Resource: @lib/acme-8.0.jar
时,会导致以下错误:
bnd print -all acme-8.0.jar
给我以下输出(缩短,供应商名称替换为 acme)
如果我正确理解此输出,则有几个包使用默认包。这怎么可能呢?据我所知,您不能从默认包中导入类。
我已经联系了供应商,要求移动有问题的班级。很有可能,他不会听从我的建议。
是否有解决方法来处理默认包中的类?
java - 实现 api bundle 的 library bundle 是否应该导出 api 包?
我有一棵大树,它使用其他捆绑包。例如:
- 基本包使用 api 包。
- api 包是一个纯 api 包
- 基础包使用api包,是一个库包(有用的库函数,其他包可以使用)
- api 包导出 api 包
- 基本包导出基本包。基本包还从 api 包中导出 api 包。
让基础包也导出api包是否正确?
我这样做是因为现在用户只需将基本包添加到他们的构建路径中,并且 bndtools 可以找到基本 + api 包。否则,使用基本包的用户需要弄清楚基本包使用了 api 包,他们需要将其添加到构建路径中。
java - 我可以使用版本限定符来要求 OSGi 中的特定包版本吗?
我有一个想要包装的第三方 JAR - 它没有自己的 OSGi 清单。例如,org.myproject
。所以我创建了一个捆绑包装器。
这很好用——我提供了org.myproject
. 这是由org.myproject
. 说,1.0.1
。
现在,org.myproject
已更改,我想包含更改。但是,没有官方发布。这听起来像我可以使用限定符来表示较新的版本:1.0.1.$timestamp
但是,当使用 bndtools 包装 JAR 时,包导出的版本仍为1.0.1
.
是否可以在 OSGi 中导出然后导入特定于限定符的包版本?在 bndtools 中管理此问题的最佳方法是什么?