maven 构建 OSGi 的问题(包括依赖项)

2024-05-09

我目前正在从 OSGi、iPOJO 和 iPOJO Annotations 开始,并尝试构建一个要在 Felix 中部署的简单组件。不幸的是,我遇到了各种问题,这些问题需要我花几个小时才能解决,或者在浪费时间后我什至无法解决,如下所示:

我想在我的 OSGi 包中使用我们使用 Maven 构建的现有库。该库目前尚未“OSGI 化”,我们不打算在中期这样做。因此,我想将该库及其所有依赖项包含在捆绑包中,使用……:

<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>

我现在拥有的是 OSGi 组件的以下 pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>foo</groupId>
    <artifactId>samplecomponent</artifactId>
    <packaging>bundle</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArguments>
                        <encoding>UTF-8</encoding>
                    </compilerArguments>
                    <showDeprecation>true</showDeprecation>
                    <verbose>true</verbose>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <version>2.3.6</version>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                        <Embed-Dependency>*</Embed-Dependency>
                        <Embed-Transitive>true</Embed-Transitive>
                        <Embed-Directory>lib</Embed-Directory>
                        <Export-Package>*</Export-Package>
                        <_exportcontents>*</_exportcontents>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-ipojo-plugin</artifactId>
                <version>1.6.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>ipojo-bundle</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.ipojo.annotations</artifactId>
            <version>1.8.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>foo</groupId>
            <artifactId>mylibrary</artifactId>
            <version>1.2.3</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>

捆绑包 jar 文件的构建没有任何问题,但在 Apache Felix 上部署和启动捆绑包时,出现以下错误:

g! install file:/…/samplecomponent-0.0.1-SNAPSHOT.jar 
Bundle ID: 8
g! start 8
org.osgi.framework.BundleException: Unresolved constraint in bundle samplecomponent [8]: Unable to resolve 8.0: missing requirement [8.0] osgi.wiring.package; (osgi.wiring.package=com.sun.jdmk.comm)

我已将日志级别设置为最高详细程度,不幸的是没有更多信息。当我删除 mylibrary 时,捆绑包启动时没有问题。

任何建议表示赞赏!


显然,图书馆使用com.sun.jdmk.comm,它没有从框架包中公开。你可以检查这个问题 https://stackoverflow.com/questions/4462154/how-to-access-the-internal-sun-security-class-from-an-osgi-bundle如果您确实需要它,或者通过添加附加指令将其从导入中排除,

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

maven 构建 OSGi 的问题(包括依赖项) 的相关文章

  • 如何查看 Maven pom.xml 文件的传递依赖关系?

    有没有一个 CLI 工具可以用来快速查看 Maven 的传递依赖关系pom xml file 在 CLI 上 使用mvn dependency tree http maven apache org plugins maven depende
  • Eclipse ECF 与 Apache CXF

    我正在尝试提出一种架构 该架构允许我远程分发 OSGi 捆绑包 以便动态发现等 经过一段时间的研究后 我倾向于使用以下内容 Apache CXF 作为 OSGi 远程服务实现 Spring动态模块 用于 Eclipse 的 JAX WS 工
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 我可以直接在 Maven 中使用 GitHub 项目吗?

    我有兴趣使用GitHub 上的项目 https github com toelen spymemcached jcache作为我的项目中的依赖项 GitHub 项目有一个pom文件 我可以修改我的pom文件来使用这个项目 如果是这样 怎么办
  • 如何忽略子模块中的 Maven 配置文件?

    我想运行简单的流程 我有 6 个配置文件 生成架构 解压战争 运行码头 测试 停止码头 启动停止应用程序 当我在 mvn 目标 属性中声明它时 测试配置文件将在不同的子模块上运行 clean activate profiles 生成架构 u
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 具有本机依赖项和复制文件的 Maven 项目

    我有以下场景 mylib 是一个库 我有其源代码 因此我想将它们放入 Maven 项目 mylib mylib 中 这个库有一个 jar 依赖项 我只有 jar 并且在 Maven 存储库中找不到它 而且我也不想在那里安装它 为了使其编译
  • 无法将 Maven 项目导入 IntelliJ IDEA

    我在将任何 Maven 项目导入 IntelliJ IDEA 时遇到问题 我创建一个空的 Maven 项目 如下所示 mvn archetype generate DgroupId com mycompany app DartifactId
  • 将 JSF 2.1 与 JSP 2.0 结合使用时出错:无法从 JAR 文件中读取 TLD

    我尝试在 JSP 2 0 中使用 JSF 2 1 当我添加这个时 我收到以下错误 Unable to read TLD META INF html basic tld from JAR file file home fadhel m2 re
  • java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java2411

    我正在尝试将 opencv 添加到我的 Spring Boot Maven 项目中 为了使用 opencv 库 我必须在 java library path 中提供本机库 我已将以下命令添加到 Eclipse VM 参数中 Djava li
  • 如何从 docker 运行 Maven 包装器?

    我必须从 dockerfile 运行 Maven 包装器命令 但我不知道该怎么做 当我尝试这样写时 RUN mvnw s settings xml clean install 这个命令不起作用 我有错误mvnw not found 我的泊坞
  • 使用 Spark SQL 时找不到 Spark Logging 类

    我正在尝试用 Java 进行简单的 Spark SQL 编程 在程序中 我从 Cassandra 表获取数据 将RDD into a Dataset并显示数据 当我运行spark submit命令 我收到错误 java lang Class
  • Maven 快速入门指南 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的任务是为工作中的新程序设置开发环境 领导者选择 Eclipse 作为其 OSGi 支持的 IDE 并选择 Maven 作为构建实用程序
  • Intellij Idea 需要永远解决 Maven 依赖关系

    我正在使用 intellij idea 最终版本 12 1 4 并尝试在项目中使用 Maven 这是我的 pom xml
  • Maven 调试显示警告和错误,但最终编译

    正如标题所示 我在 Maven 中面临着一个奇怪的情况 给出的是我运行的调试过程的输出mvn install X命令 DEBUG WARNING The POM for sampleModule sampleModule msg jar 1
  • Jenkins 未显示 Maven 编译器错误

    在 Jenkins 中构建多模块 maven 3 项目时 如果出现构建错误 我们会收到一条神秘消息 表明 Maven 编译器插件失败 这在上周才刚刚开始发生 INFO BUILD FAILURE INFO INFO Total time 1
  • Java EE 6 的 Maven 与 Eclipse 项目 Facets

    我在 Eclipse 中使用以下原型创建了 Maven 项目 ejb javaee6 webapp javaee6 这些项目是在没有方面的情况下创建的 将此类 Maven 项目转换为多面形式有意义吗 哪些方面会有帮助 哪些方面可能会给 Ma
  • 如何调试使用maven构建的android应用程序

    我目前正在尝试从 Eclipse 调试我的设备上的 Android 应用程序 设备已添加 我可以在控制台和 Eclipse 中看到它 控制台 Windows adb devices List of devices attached 0019
  • 如何在 Grails 2.4 中外部化 Maven 凭证

    我正在尝试在 Grails 2 4 项目中从使用 Ivy 迁移到使用 Aether 解析器 我遇到的问题与外部化凭证有关 与此相关的信息可以在 Grails 手册中找到 http grails org doc latest guide co

随机推荐

  • 如何从计划任务中删除触发器

    我使用 PowerShell 中的任务计划程序 cmdlet 为 Perfmon 数据收集器集的计划任务配置触发器 我使用以下命令来修改计划任务并在服务器启动时启动数据收集器集 trigger New ScheduledTaskTrigge
  • MYSQL数据库删除行后需要进行后期优化

    我有一个当前为 10GB 的日志表 它有很多过去两年的数据 我真的觉得目前我不需要那么多 我是否错误地认为在表中保存多年的数据不好 表越小越好 我的桌子都有 MYISAM 引擎 我想删除 2014 年和 2015 年的所有数据 很快我就会删
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • 奇怪的 ASP.NET 错误!

    我正在运行带有 IIS 7 5 的 Windows 7 x64 版本 我有一个简单的 asp net 网站 我在其他版本的 Windows 和 IIS 上运行该网站 但现在在某些页面上出现以下错误 异常信息 异常类型 HttpParseEx
  • 为什么jdk中没有ConcurrentLinkedHashMap类?

    这个问题直接接着问从我之前的问题来看 https stackoverflow com q 12299731 1527084 我想我的第二个问题的答案是否定的 所以我想了解为什么 java util concurrent 包中没有 Concu
  • 有没有任何工具可以将 PVR 纹理分割成一组图块?

    我有一张大的 png 纹理 4096x4096 我需要将其部分加载到内存中 我已经将大 png 纹理分割成 16 个 1024x1024 块 然后将它们转换为 PVR 压缩文件 问题是 当我绘制这些图块时 图块之间的边缘与 png 的边缘不
  • 使用 Flask-SQLAlchemy 进行多对多多数据库连接

    我正在尝试使这个多对多联接与 Flask SQLAlchemy 和两个 MySQL 数据库一起工作 并且它非常接近 只是它为联接表使用了错误的数据库 这是基础知识 我有main db and vendor db 表格设置为main db u
  • Flutter 分析/构建在 GitHub 操作中失败

    当运行以下操作时 它会失败flutter analyze 如果我删除它 稍后会失败flutter build 这两个命令在本地都可以正常工作 我理解该消息 但无法理解包路径可能有什么问题 GitHub 操作错误 flutter analyz
  • 如何在Webview中保存用户名和密码

    目前 我还在学习Android开发的过程中 所以如果我的这个问题对你来说不太容易理解 请原谅 我创建了一个 Android 应用程序 它使用 RecyclerView 显示一组列表 当用户单击列表中的每个名称时 它会将它们重定向到一组不同的
  • 我们可以使用 EWS 托管 API 连接到 Exchange 2016 吗?

    我使用的是 EWS 托管 API 2 2 它的枚举中没有显示 Exchange 版本 2016 我可以看到 Exchange 2013 之前的版本 那么如何连接到 Exchange Server 2016 该 API 是否尚未从 Micro
  • Android - 保持用户登录状态

    我正在尝试使用 PHP 和 MySQLi for Android 进行登录 我不明白的是如何保持用户登录状态 我看到一个简单的教程 其中有人使用 SQLite 来保护信息 但我不知道这是否真的安全 如何保存用户信息以保持用户登录状态 谢谢
  • 将enable_nestloop设置为OFF有哪些陷阱

    当我的表中有大量行时 我的应用程序中有一个查询运行得非常快 但是 当行数适中 既不大也不小 时 相同的查询运行速度会慢 15 倍 解释计划显示对中等规模数据集的查询正在使用嵌套循环其连接算法 大数据集使用散列连接 我可以阻止查询规划器在数据
  • MySQL 连接逗号分隔字段

    我有两张桌子 第一个表是batch在字段 batch 中包含逗号分隔的学生 ID 的表 batch id batch 1 1 2 2 3 4 第二个表是分数 marks id studentid subject marks 1 1 Engl
  • 注解和装饰器有什么区别?

    我很困惑何时使用术语注释以及何时使用装饰器 Component selector tabs template export class Tabs 装饰器对应于在类上调用的函数 而注释是使用 Reflect Metadata 库在类上设置的
  • 如何在 flutter 中用动画 POP

    我正在触发 Navigator pop 事件 并且想要淡出到页面的过渡 我尝试过 Fluro 但没有尝试过 我对实施它不感兴趣 这就是我正在做的 Widget build BuildContext context return Scaffo
  • “if”在 ASP.NET MVC View (.aspx) 文件中被认为有害?

    我记得看到一个博客 或其他内容 说你不应该在 ASP NET MVC 的 aspx 文件中使用 但我不记得它说的替代方案是什么 有人记得看过这个并指出我吗 基本上 这意味着您的视图中不应该有大量的 if 语句 您的控制器和视图模型应该能够处
  • 对数据框的行进行排序

    我有以下数据框 adjusted RFC df Node Feature Indicator Scaled Class Direction True False 0 0 km lt 0 181 class 4 0 gt 1 NA 125 1
  • 导入 CSS 文件时出现“找不到所需模块”的流程

    当我尝试通过 webpack import index css 导入 CSS 时 出现此错误 3 import index css index css Required module not found 我有一个类似 ComponentNa
  • jQuery 在提交的数据中附加一些奇怪的字符串

    重现该bug的代码 在html页面中放入以下代码并读取Fiddler中提交的数据 jQuery 1 4 2工作正常 问题发生在1 5 1和1 5 2
  • maven 构建 OSGi 的问题(包括依赖项)

    我目前正在从 OSGi iPOJO 和 iPOJO Annotations 开始 并尝试构建一个要在 Felix 中部署的简单组件 不幸的是 我遇到了各种问题 这些问题需要我花几个小时才能解决 或者在浪费时间后我什至无法解决 如下所示 我想