问题标签 [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.

0 投票
1 回答
546 浏览

java - 如何替换 BndTools 默认启动器并更改导出文件结构

我正在使用 BndTools ( http://bndtools.org/ ) 来开发 OSGI 应用程序。一切正常,但在导出应用程序时我想更改一些内容。

我正在尝试实现两件事(我认为它们可能是相关的):

1: 将默认的 BndTools 启动器 ( aQute.launcher) 替换为自定义启动器 (或有.JAR格式)

如何摆脱或将默认 BndTools 启动器 (aQute.launcher) 更改为自定义启动器?

关于这个话题,我唯一能找到的是:http: //goo.gl/jYliih

启动器没有内置到 bnd 中,实际的启动策略是参数化的。通过将 JAR 放在-runpath. A.JAR应该有一个 Launcher-Plugin 标头作为启动器。如果没有找到启动器,-runpath则将使用内置的biz.aQute.launcher

原因是我需要我的应用程序接受命令参数而不干扰 aQute 启动器(就像所有 -run 参数一样)。另一方面,我想摆脱.bat/.sh启动应用程序的批处理方法并使用单个.jar文件来启动应用程序。

那可能吗?

2:自定义导出的文件结构

默认情况下,BndTools 在导出应用程序时会创建此文件结构:

jar/ -> 这是 OSGI jar 包文件夹

aQute/ -> 默认的 BndTools Launcher(Launcher.class 里面)

META-INF/ -> 为什么这里有一个 META-INF 文件夹?这不是 JAR

launcher.properties -> 启动器属性

start.sh --> 从此批处理文件启动 Launcher.class。

start.bat / 与 JAR 相比,这样做的好处在哪里?

基本上我想删除aQute,META-INFstart.*文件并为二进制文件添加一个bin文件夹。

这应该可以通过“Ant”、“Maven”或“Gridle”脚本来实现。但我可以只创建一个“BndTools 项目”或一个“Gradle 项目”而不支持 BndTools。我安装了“BndTools Gradle 插件”,但在任何地方都找不到关于此主题的任何有用文档。

希望有人可以帮助我或指出我正确的方向。问候。

0 投票
2 回答
203 浏览

java - 在 bndrun 文件中,如何在 -runvm 中传递有空格的属性?

在一个.bndrun文件中,我有:

当我运行运行描述符时,控制台显示:

这是因为以下生成的命令行:

这个空间显然让它心烦意乱。通常,引号是解决此问题的方法。但如果我添加它们,它们似乎被剥离了:

0 投票
2 回答
109 浏览

eclipse - 如何将我的 bnd jars 依赖项添加到我的 Eclipse RCP 应用程序中?

我在我的工作区中创建了一些核心插件,这些插件是使用 Eclipse 中的 BND 工具构建的。现在我必须在我的 Eclipse RCP 应用程序中引用这些核心插件,该应用程序是使用 Eclipse 中的 PDE 工具开发的。但是在 RCP 应用程序中看不到 BND 生成的插件。也许我可以手动将这些插件复制到文件夹并将文件夹添加到目标。但我想摆脱这种手动任务。

有没有什么简单的方法可以将 BND 生成的插件作为依赖项添加到我的 RCP 应用程序中?

提前致谢。

0 投票
1 回答
259 浏览

java - 如何在另一个 OSGi 包的一个 OSGi 包中使用 **CSS** 资源文件

我的项目目录结构(在 Eclipse 中):

我想在类中其他 OSGi 包中的 OSGi 包中包含的 CSS 文件style.css中使用,MyProjectContainingCSSMyProjectContainingCSSStyleImpl.java

就像是:

如何在另一个 OSGi 包的一个 OSGi 包中使用CSS资源文件?

谢谢大家。

更新

bnd.bnd 文件

运行描述符

0 投票
1 回答
451 浏览

java - 如何在一个 bndtools 工作区中使用多个 git 存储库

我正在使用带有几个专用工作区的 eclipse BndTools,每个工作区都存储在一个 git 存储库中,到目前为止我一直很高兴。

我一直在通过复制它们在工作区之间共享项目。但最近决定将通用代码拉入共享代码 git 存储库。在 Eclipse 中,这很简单,只需在工作区中使用子文件夹,每个存储库一个。

然而令我惊讶的是,bndtools 要求我在文件库中的项目旁边放置一个 cnf 项目。同时我的工作空间中只能有一个 cnf 项目。这实际上意味着我所有的项目都应该是同行。

这反过来意味着我不能使用多个 git 存储库,因为它们不能共享同一个目录。除非我将每个项目拆分到它自己的存储库中并且有 50 多个项目,否则这显然不是我想要去的地方。

我知道 eclipse 可以做到这一点,但有没有办法让 bndtools 玩球?

0 投票
1 回答
2161 浏览

java - Eclipse 即时检测外部文件更改

我正在使用 eclipse bndtools 插件来开发基于 OSGi 的 Web 应用程序。我正在使用 Eclipse IDE(因为 bndtools)和 Jetbrain Webstorm IDE 来编辑 html/css/js 文件。

当我在 eclipse 中更改文件时,bndtools 会刷新包,我可以立即看到更改,但是当我使用 Webstorm 编辑文件时,我需要在 eclipse 中刷新项目才能看到结果。

注意:我已经启用了 Eclipse 工作区设置Windows > Preferences > General > Workspace > Refresh using native hooks 或 polling and Refresh on access 。但这只会使 eclipse 在我访问 eclipse 中的文件时检测到更改。

为了加快我的开发速度,我不想在我在 Webstorm 中所做的每一次更改上都使用 eclipse 来刷新项目。我在问是否有办法避免它。

谢谢

0 投票
2 回答
108 浏览

java - bnd osgi 项目未通过 Firefox 运行

我刚开始学习如何构建 bnd OSGI 项目。我尝试运行一个非常简单的项目,没有任何错误消息,但是当我转到 localhost 时,它显示“HTTP ERROR:404”。

简单的类:

在此处输入图像描述

一个激活器类: 在此处输入图像描述

其余构建依赖项

在此处输入图像描述

运行依赖项

在此处输入图像描述

http错误:

在此处输入图像描述

谢谢你的帮助!!

0 投票
2 回答
609 浏览

osgi - 缺少要求 osgi.wiring.package(com.sun.xml.internal.fastinfoset.sax)

我正在尝试混合 OSGi 和 JEE。我想在我的 Activator.java 中创建一个组件,但是当我控制台这个项目时,我看到以下错误:

激活器.java

活化剂

邦德尔

邦德尔

JAR 文件的清单 显现

感谢您的帮助!

0 投票
2 回答
130 浏览

osgi - 如何在 bndtools / felix 环境中即时更改捆绑资源

在开发过程中,我们需要更改捆绑包中特定文件的内容,并且能够在应用程序中看到更改的文件内容,而无需重新编译/重新捆绑/重新安装捆绑包。Bundle.getEntry()每次应用程序需要其内容时,都会读取文件。

使用 Eclipse PDE 和 Equinox 很简单,因为从 Eclipse 环境启动的 OSGi 框架将项目文件夹视为未打包的包。每次应用程序读取资源内容时,都会反映项目文件夹中文件的更改。

如果我理解正确,bndtools 总是在检测到资源更改时重新打包捆绑包。但是对于具有数百个资源文件的项目,它需要太多时间。是否有可能实现与 Eclipse PDE 中类似的行为?最好在 Apache Felix 中?我们仅在开发/调试期间并且仅当应用程序从 IDE 启动时才需要此类功能。资源在生产中永远不会改变。

具体来说——在我们的应用程序中,有很多 LESS 文件被编译成几个 CSS。CSS 在任何 LESS 文件更改后立即生成。这是通过 gulp 和 node.js 实现的。当页面重新加载时,我们需要(几乎)立即看到更改的 CSS 文件。请注意,我们没有使用 OSGi HTTP 服务。

0 投票
1 回答
307 浏览

osgi - 用于运行 enRoute OSGi 框架的 Docker 映像?

我想尝试在 Docker 容器中运行 enRoute,但似乎找不到任何 Docker 映像。谁能推荐一张图片的位置?