使用 Maven 为 OSGi“包装”jar 的好方法

2024-02-25

例如,我正在查看 OPS4J 上的 PAX 工具:this one http://www.ops4j.org/projects/pax/construct/maven-pax-plugin/wrap-jar-mojo.html我想我找到了一个好方法:

  • 指定一个工件
  • 从该 jar 及其传递依赖项创建一个组装的 jar(包含所有依赖项的 jar)
  • 用 BND 包装它以创建 OSGi 包

事实证明,我错了——PAX 的东西似乎并没有做到这一点。 (RTFM,对吧?:))

但这让我想知道:有没有什么东西可以满足我的要求?

我想也许我可以通过创建一个简单的 POM 并使用 maven-bundle-plugin 来做到这一点,但这对于我的要求来说似乎有点麻烦。

NOTE:我知道嵌入和组装 jar 并不是真正的“OSGi 方式”——所以我不会这样做,除非我真的觉得它有用。例如——春天。

提前致谢。


我编写了一个 Maven 原型,它将帮助您将 jar 包装为 OSGI 包。

假设您想要包装 commons-collections 版本 3.2.1

首先获取原型并安装它

git clone git://github.com/HallwayTech/maven-wrap-jar-archetype.git 
cd maven-wrap-jar-archetype
maven install

然后使用原型来启动您的项目。

mvn archetype:create \
  -DarchetypeGroupId=com.hallwaytech.osgi \
  -DarchetypeArtifactId=wrap-jar \
  -DarchetypeVersion=1.0-SNAPSHOT \
  -DgroupId=commons-collections \
  -DartifactId=commons-collections \
  -Dversion=3.2.1

CD公共收藏

mvn install

要部署到 Felix 内的 Apache Sling,请运行:

mvn install -Pdeploy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Maven 为 OSGi“包装”jar 的好方法 的相关文章

  • Java - 从配置文件加密/解密用户名和密码

    我们正忙于为客户开发 Java Web 服务 有两种可能的选择 将加密的用户名 密码存储在Web服务客户端上 从配置中读取 文件在客户端 解密并发送 将加密的用户名 密码存储在 Web 服务器上 从配置中读取 Web 服务器上的文件 解密并
  • H264 字节流到图像文件

    第一次来这里所以要温柔 我已经在给定的 H 264 字节流上工作了几个星期 一般注意事项 字节流不是来自文件 它是从外部源实时提供给我的 字节流使用 Android 的媒体编解码器进行编码 当将流写入扩展名为 H264的文件时 VLC能够正
  • 如何在数据库中对 (Java) 枚举进行建模(使用 SQL92)

    您好 我正在使用名为 性别 的列对实体进行建模 在应用程序代码中 性别应该是一个 Java 枚举类型 有 2 个值 男性和女性 知道作为数据类型的枚举不是通用 SQL 语言 92 的一部分 您将如何建模它 数据模型必须是可移植的 以便由多个
  • java中队列的实现

    在 Java 中实现队列是一个非常常见的面试问题 我在网上冲浪 看到了许多实现 他们做了一些奇特的事情 比如实现队列接口和编写自己的addLast and removeFirst 方法 我的问题是我不能使用LinkedList 类并使用其预
  • 代码编译期间遇到警告消息“使用或覆盖已弃用的 API”

    我编译了我的程序并收到以下错误 我该如何解决呢 Note ClientThreadClients java uses or overrides a deprecated API Note Recompile with Xlint depre
  • BigDecimal 的 JPA @Size 注释

    我该如何使用 SizeMySQL 的注释DECIMAL x y 列 我在用着BigDecimal 但是当我尝试包括 Size max它不起作用 这是我的代码 Size max 7 2 Column name weight private B
  • 通过 JNI 从 Applet 调用 DLL

    我有一个 概念验证 的作品 它跨越了一些不熟悉的领域 我的任务是将 EFTPOS 机器连接到在内联网浏览器中作为小程序运行的应用程序 我暂时忽略了 EFTPOS dll 并用我选择的语言 Delphi 创建了一个简单的 JNI 修饰的 DL
  • 如何使用 BufferedReader 对象从 Java 中的一行读取多个整数值?

    我正在使用 BufferedReader 类读取 Java 程序中的输入 我想读取用户的输入 该用户可以在带空格的单行中输入多个整数数据 我想读取整数数组中的所有这些数据 输入格式 用户首先输入他 她想要输入的数字数量 然后在下一行中使用多
  • JavaFx 中装饰且不可移动的舞台

    我想在 JavaFx 中创建一个装饰舞台 它也将不可移动 我正在从另一个控制器类创建这个阶段 我能够创造和展示舞台 但它是自由移动的 我怎样才能创建这个 非常感谢帮助和建议 我把打开新关卡的方法贴出来 private void addRec
  • 如何使用 Spring MVC 和 Thymeleaf 添加静态文件

    我的问题是如何添加 CSS 和图像文件等静态文件 以便我可以使用它们 我正在使用 Spring MVC 和 Thymeleaf 我查看了有关此主题的各种帖子 但它们对我没有帮助 所以我才来问 根据这些帖子 我将 CSS 和图像文件放在res
  • MessageDigest MD5 算法未返回我期望的结果

    我脑后的某个东西告诉我 我在这里遗漏了一些明显的东西 我正在将现有的 java 项目与第三方 api 集成 该第三方 api 使用 api 密钥的 md5 哈希进行身份验证 它对我不起作用 在调试过程中我意识到我生成的哈希值与他们提供的示例
  • 如何获取 Android 中临时文件的文件大小?

    如果我使用 openFileOutput 创建并写入临时文件 写入完成后如何获取文件大小 我希望这可以帮助你 File file new File selectedPath int file size Integer parseInt St
  • XSLT:我们可以使用abs值吗?

    我想知道在 XSLT 中我们是否可以使用 math abs 我在某处看到过这个 但它不起作用 我有类似的东西
  • 膨胀类片段 InflateException 二进制 XML 文件时出错

    我正在使用 Material Design 和 NavigationDrawer 布局等设计我的第一个应用程序 但我遇到了一个问题 该应用程序非常简单 它只显示文本 并且基于 Android Studio 中提供的模板 尝试启动我的应用程序
  • Hibernate @OneToMany 注释到底是如何工作的?

    我对 Hibernate 还很陌生 我正在通过教程学习它 我在理解到底如何一对多注释作品 所以我有这两个实体类 Student代表一个学生并且Guide代表指导学生的人 因此 每个学生都与一名向导相关联 但一名向导可以跟随多个学生 我想要一
  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的
  • 如何将任务添加到 gradle 中的主要“构建”任务

    当我尝试使用以下代码将任务添加到主构建任务时 rootProject tasks getByName build dependsOn mytask 当我跑步时它抱怨gradle w build输出 Where Build file line
  • java中wav文件转换为字节数组

    我的项目是 阿塞拜疆语音的语音识别 我必须编写一个程序来转换wav文件到字节数组 如何将音频文件转换为byte 基本上如第一个答案中的片段所描述 但不是BufferedInputStream use AudioSystem getAudio
  • 如何使用maven创建基于spring的可执行jar?

    我有一个基于 Maven 的 Spring WS 客户端项目 我想将其打包为单个 jar 在eclipse中 一切运行正常 当我尝试将其打包为可执行 jar 时 我收到 ClassNotFound 异常 因为 Spring jar 未包含在
  • 编译时在代码中替换Java静态最终值?

    在java中 假设我有以下内容 fileA java class A public static final int SIZE 100 然后在另一个文件中我使用这个值 fileB java import A class b Object t

随机推荐

  • clang vs gcc - 空通用 lambda 变量参数包

    我想我找到了另一个 clang 与 gcc lambda 和可调用对象之间的不一致 decltype l operator 应该等于C operator 但是如果通用 lambda 中的可变参数包留空 gcc 会拒绝编译 15 错误 与调用
  • Highcharts - 仅当直接悬停在点上时显示工具提示

    Highcharts 的默认体验似乎是距离光标最近的点 水平 处于悬停状态 这意味着当您到达行中下一个点的一半以上时 就会触发工具提示 我希望当我直接将鼠标悬停在一个点上时触发工具提示 然后保持活动状态 直到我将鼠标直接悬停在另一个点上 这
  • adb Push/Pull 的默认工作目录是什么以及如何更改它?

    我使用 adb 从 android sdcard 中提取了一个文件 它似乎转到了c documents and settings userName默认情况下 我不知道它是如何设置到这个文件夹的 因为这不是安装 adb 的地方 但可能与以下事
  • 如何在 Dropwizard 项目(Angular 7 前端)中创建并开始使用嵌入式 Apache Derby 数据库

    我正在阅读 Derby 文档并遵循所有说明 我已成功安装它 将其解压到我的 Linux 计算机并设置 DERBY HOME 路径 我有一个完整的 REST API 项目 带有 Angular 7 前端和 Dropwizard 后端 我在后端
  • 有没有办法在 numpy.hist 中返回相同长度的数组?

    我正在尝试在 python 中创建直方图 用一些自定义值对 y 轴值进行标准化 为此 我想这样做 import numpy as np import matplotlib pyplot as plt data np loadtxt foo
  • 惰性 var 属性初始化两次是否正常?

    当我使用房产时 我遇到过很奇怪的情况lazy关键词 我知道这个关键字表示属性的初始化将被推迟到实际使用变量为止 但是 它并没有像我预期的那样工作 它运行两次 class TestLazyViewController UIViewContro
  • 为什么 is 运算符在给定 null 时返回 false?

    在我看来 is运营商有点不一致 bool Test Returns false but should return true return null is string 人们期望null值属于任何引用 或可为空 类型 事实上 C 语言规范的
  • http_build_query() 点转换为下划线

    请检查以下数组 Array bunrey gt Array 0 gt 20130730181908615391000000 mt shasta gt Array 0 gt 20130708203742347410000000 1 gt 20
  • 如何使用 jQuery 检测 IE 8?

    我不仅需要检测浏览器类型 还需要使用 jQuery 检测浏览器版本 主要是我需要确定它是否是 IE 8 我不确定我是否做得正确 如果我做 if jQuery browser version gt 8 0 dosomething 我不确定它是
  • 在 python selenium webdriver 中发送密钥而不指定元素

    我有一个页面 其源代码不可用 但有一个输入框 光标在闪烁 我可以在文本框中写入一些内容而不找到该元素吗 我的意思是 发送键可以通过某种方式自动查找焦点输入框并在其中键入输入 我的代码显然不能工作 driver send keys testd
  • 使用意图上传图像

    我正在尝试为我的 Android 移动应用程序上传图像 对于从图库文件夹上传的图像 该代码运行良好 但是 如果我从 最近的图像 文档 下载 中选择任何图像 则图像路径不会被提取 无法上传图像 你能帮我解决这个问题吗 这是我的编码供您参考 p
  • 在谷歌中搜索单词并想使用java程序找到每个单词的命中

    我有30000个字典单词 我想在 Google 中搜索每个单词 并想使用 Java 程序找到每个单词的匹配项 是否可以 Look up
  • 如何在 EF Core 中放弃对上下文的更改

    我有一个巨大的 json 格式的 扁平化 对象列表 以及一个有点复杂的关系数据库模式 大约 20 个表对应于一个扁平化对象 我正在尝试在新的关系数据库中自动插入这些扁平对象 foreach var flattenedObject in fl
  • jQuery-UI 可排序 - 更新后同步数组(模型)

    假设我有一个包含数据的数组 它可能来自 Ajax 但无需在此处执行此操作 使用该数组 我生成 UL 元素的内容 并使用 jQuery UI 使 UL 可排序 在客户端对它进行排序之后 我希望保持数组的顺序与 UL 同步 有没有一种优雅的方法
  • 如何用python画动态规划表

    What is a good way to draw a dynamic programming such as this one with the path in python 我在网上查了一下 我看到了pygame http pygam
  • 从 PHP 关联数组中弹出键和值

    假设 S 是 PHP 中的关联数组 我需要从中检索并提取第一个元素 包括值和键 我会用 value1 array pop S 但它只给了我价值 我可以用 K array keys S key1 array pop K value1 arra
  • 在graphviz中从节点到边绘制边

    是否可以在 graphviz 中从节点绘制一条边到现有边的中心 我想复制化学或生物网络中常见的这种类型的反应图 Thanks Peter 是的 您可以使用不可见节点 例如这个例子 https stackoverflow com questi
  • Amazon Elasticsearch - 并发批量请求

    当我通过一个批量请求向 ElasticSearch 添加 200 个文档时 速度非常快 但我想知道是否有机会加快这一进程并发执行 20 个并发执行 每个并发执行 10 个文档 我知道这效率不高 但也许有机会通过并发执行来加快进程 较低的并发
  • 使用 get_meta_tags() 和 get_headers() 进行异常处理?

    在 PHP 中 我正在使用get meta tags and get headers 但是 当出现 404 错误时 这两个函数会发出警告 有什么办法让我抓住它吗 谢谢 get headers不会在 404 上抛出警告 错误 但是get me
  • 使用 Maven 为 OSGi“包装”jar 的好方法

    例如 我正在查看 OPS4J 上的 PAX 工具 this one http www ops4j org projects pax construct maven pax plugin wrap jar mojo html我想我找到了一个好