- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
今天有人问我在我们当前的 OSGi 应用程序中使用 Maven 是否是个好主意。我们使用了 Bndtools,它很棒,因为它使开发变得尽可能简单。即使在应用程序运行期间,Bndtools 使用 OBR 来维护其他包和依赖项解析。
由于 Maven 广泛传播并且非常流行,因此大多数人也尝试在 OSGi 环境中使用它。对我来说,这是两种不同的方法。 OSGi 有自己的依赖项声明,即 MANIFEST.MF 和 Maven 的 pom,您可以在其中声明它们。所以如果你同时使用它们,你将声明依赖关系两次。当然,您可以使用 Apache OSGi Maven 插件来避免它,Maven 负责创建 MANIFEST.MF。但是 Maven 存储库并不真正关心 bundle 。因此,您可能会引用非 bundle jar。
当然,使用 Maven 有很多优势,但是将其与 OSGi 或专门与 Bndtools 结合真的是一件好事吗?
有人可以提供优势或劣势!有人有使用这两种方法的实践经验吗?
最佳答案
我认为如果您所做的几乎所有事情都以 Maven 为中心,那么 Apache Felix Maven 插件(顺便说一句,也基于 BND)是最佳选择。
否则,如果您想使用 Maven 但不是那么重要的角色,Eclipse Tycho很有意义。 Tycho 是一组 Maven 插件。
使用 Tycho,您可以提供从 Eclipse 到 Maven 的目标平台,然后它可以通过查看您的 MANIFEST 和目标平台来解析所有 bundle 。 pom.xml 文件对于 Tycho 项目来说非常简单,因为它们不包含您的依赖项。
Tycho 显然非常以 Eclipse 为中心。如果您不使用 eclipse,我认为它没有多大意义,但有时更容易合并到现有项目中。
无论哪种方式,您仍然可以使用 Apache Felix Maven 插件在部署阶段生成 OBR 元数据。
关于java - 使用 Maven、OSGi 和 Bndtools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567325/
我在 Eclipse 中安装了 Bndtools 并尝试了他们的快速教程:http://bndtools.org/tutorial.html 但是当我想通过“运行 OSGi”按钮启动一个非常简单的组件
我尝试将 Gemini 蓝图包添加到 bndTool存储库。不幸的是我不知道这是如何工作的。 我已经下载了 Gemini Blueprint bundle 并尝试将它们添加为附加存储库(压缩 bund
我正在使用 BndTools ( http://bndtools.org/ ) 开发 OSGI 应用程序。一切正常,但我想在导出我的应用程序时更改一些内容。 我正在努力实现两件事(我认为它们可能是相关
我想包装第三方 jar 。不幸的是,供应商将一个具有单一方法的单一类 (a.class) 放入默认包中。 当我尝试使用 Include-Resource: @lib/acme-8.0.jar 包含资源
我使用 bndtools 从 owlim-lite 制作了一个 bundle ,并添加了所有必要的依赖项,以便 OBR-resoultion 正常工作。 Sesame(语义 Web 存储库)应该使用
有没有人尝试过使用 Bndtools 运行 PaxExam Junit 测试并可以给我一些建议?我自己试过了,但是没有 Maven,下载所有依赖项很痛苦。 到目前为止我所做的: 从 Central M
我正在尝试使用本教程中概述的过程运行一个简单的应用程序:BndTools tutorial project . 这是我正在尝试加载的 osgi 项目/模块。 package com.counter;
在Bndtools工作区,我想在某个项目中添加对JUnit和Mockito的依赖 因此项目的bnd.bnd文件包含这个-testpath指令: -testpath: \ junit:junit
我正在使用 eclipse BndTools 和一些专用工作区,每个工作区都存储在一个 git 存储库中,到目前为止我非常满意。 我一直在通过复制的方式在工作区之间共享项目。但最近决定将通用代码 pu
今天有人问我在我们当前的 OSGi 应用程序中使用 Maven 是否是个好主意。我们使用了 Bndtools,它很棒,因为它使开发变得尽可能简单。即使在应用程序运行期间,Bndtools 使用 OBR
在我的 OSGi 环境中,我正在尝试预加载数据库驱动程序以供进一步使用。通常,这可以像这样完成: Class.forName("com.mysql.jdbc.Driver"); 之后,就可以创建连接了
我已经创建了一个生成 .jar 文件的 BndTools OSGi 项目。现在我想要在我的主项目中使用该 jar 的 BundleContext,即动态 Web 项目(.war 文件)。动态Web项目
我终于完成了将应用程序的一部分移动到 osgi bundle 中,并在我的主机应用程序中使用这些 bundle 。这真的非常好用! 目前我正在使用 bndtools 清理我的 Eclipse 工作区并
我正在尝试使用 iPojo 注释在 Eclipse 内进行组件声明。问题是,当 bnd-ipojo-plugin 生成 XML 和修改的类时,无法在插件类路径中找到注释。 我在 Eclipse 中遇到
我有以下 bnd 文件: Bundle-Version: 1.0.12 Bundle-Activator: a.b.Activator Private-Package: a.b -buildpath:
我知道有一些特定于 Scala 的工具可以创建 OSGi 包,但我对 bndtools 非常满意,我只是想与 Java 一起编写 Scala 或代替 Java。 最佳答案 假设 bndtools 和
过去几天我一直在努力寻找解决我的问题的方法。我正在尝试通过 bndrun 文件使用 bndtools 启动器使用 3.x 兼容层启动 Eclipse RCP。 我知道解决方案涉及将 bndtools.
我正在开发这个基于 BndTools 的 OSGi 项目:https://github.com/Jafre13/ISS-Product 我的项目需要一个非基于 OSGi 的库(aliasi-lingp
我正在寻找使用 eclipse bndtools 插件将 jar 转换为 OSGi 包的分步指南。我知道可以使用命令行使用 bnd 来完成它,但很高兴知道如何通过 IDE 来完成同样的事情。 我可能遗
我正在迁移到 bndtools 我创建并在标准 Eclipse 环境中工作的一些 osgi 插件。我添加了 Felix Web 控制台和Jetty HTTP 服务,并用 Felix 替换了一些 Equ
我是一名优秀的程序员,十分优秀!