当前位置: 首页 > 知识库问答 >
问题:

在使用嵌入式依赖项时,JAR没有嵌入到OSGi包中

东门宜
2023-03-14
<dependency>
    <groupId>com.nimbusds</groupId>
    <artifactId>nimbus-jose-jwt</artifactId>
    <version>5.8</version>
</dependency>
<Embed-Dependency>
    com.nimbusds.jose.*;scope=compile|runtime;inline=true,
    com.nimbusds.jwt.*;scope=compile|runtime;inline=true,
</Embed-Dependency>
    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Bundle-SymbolicName>
                    ${project.artifactId}
                </Bundle-SymbolicName>

                <Private-Package>

                </Private-Package>
                <Import-Package>

                </Import-Package>
                <Export-Package>

                </Export-Package>
                <Embed-Dependency>
                    com.nimbusds.jose.*;scope=compile|runtime;inline=true,
                    com.nimbusds.jwt.*;scope=compile|runtime;inline=true,
                </Embed-Dependency>
                <Embed-Transitive>true</Embed-Transitive>
            </instructions>
        </configuration>
    </plugin>

共有1个答案

乐正远航
2023-03-14

试试看

<Embed-Dependency>*;scope=compile|runtime;inline=true;artifactId=nimbus-jose-jwt</Embed-Dependency>

<Embed-Dependency>nimbus-jose-jwt;scope=compile|runtime;inline=true</Embed-Dependency>

匹配表达式(至少是第一个)匹配工件ID,而不是包名。有关如何选择工件进行嵌入的更多信息,请参阅捆绑插件文档。

 类似资料:
  • 以前部署的JDOM的OSGi包究竟是如何解决这些相同的依赖关系的?它们从来没有在捆绑进口包中列出?此外,如果我试图将这些作为项目的依赖项包含并嵌入它们,只会加剧问题。救命啊!

  • 如果我有一个OSGI Bundle jar中嵌套了依赖项jar,我是否需要在导入包清单中列出这些类以便使用它们?我不这么认为。 另外,我如何将这些依赖项jar添加到我的包中。我只是把它们放在根文件夹里吗?我是否需要向清单文件添加任何内容才能使用这些依赖关系?

  • 问题内容: 我正在使用Intellij Java 2016.2.2和Maven创建一个非常简单的Java控制台应用程序。 我想添加一个外部库,所以我在Maven中添加了我的依赖项,如下所示: 当我在IDE中运行它时,它运行良好,但在外部控制台中却没有运行(我遇到以下错误: java.lang.NoClassDefFoundError )。 我检查了一下,由于某种原因,外部JAR未添加到我刚刚生成的

  • 短版: 如何配置AEM/CQ5内容包的maven POM以便包嵌入相同OSGI包的不同版本? 我正在为AEM(CQ5)构建一个内容包。该内容包嵌入了项目所需的直接和间接osgi依赖项。 我有一个bundle(我们称之为BundleX)的问题,因为在特定版本的Google Guava上有一个未解决的包导入,所以在内容包部署后仍然未激活。Guava是我嵌入到项目中的osgi依赖项的一部分。问题是不同的

  • 我们正在使用ApacheFelix(版本4.4.1)作为嵌入式OSGi框架。提供该框架的主要应用程序使用作为日志框架。存在对log4japi和log4jcore的依赖。当然,当主应用程序启动时,也会加载和配置Log4j2。主部件中触发的所有日志消息都正确写入已配置的Appender。 现在是重点。加载的所有bundle都应该能够使用与主应用程序相同的配置和日志上下文。我试图做的是提供所有Log4j

  • 我对嵌入式Cassandra的Spring单元测试有意见。问题是嵌入式Cassandra和我的Cassandra服务器同时启动。如何确保在单元测试期间只启动嵌入式Cassandra。 我正在为Cassandra使用Spring数据。 我有以下Spring配置文件。 我的上下文文件 我的测试用例如下: }