java - 将 maven-bundle-plugin 包含的资源声明为可选

标签 java maven osgi osgi-bundle maven-bundle-plugin

我有一个多模块构建,创建多个包类型为“bundle”的 Artifact 。

其中一些在编译时在 META-INF 目录中创建一些信息,有些则不会。

我尝试在父 pom.xml 中定义一条指令,将 META-INF 目录作为资源添加到 bundle 中。 不幸的是,对于那些在构建期间未创建 META-INF 目录的 Artifact ,这会失败。

我试图避免在当前创建 META-INF 目录的所有模块上定义此规则,因为

  • 有很多
  • 也许其他人将来会创建 META-INF 目录,这将要求 future 的开发人员知道他们现在必须将此目录添加为资源。

是否可以以某种方式使此“include-resource”指令成为可选,这意味着如果缺少此资源,它会忽略该资源?

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>3.5.0</version>
    <configuration>
        <instructions>
            <Include-Resource>META-INF=${project.build.outputDirectory}/META-INF</Include-Resource>
        </instructions>
    </configuration>
</plugin>

最佳答案

在资源模式前加上 - 就足够了,例如:

<Include-Resource>-META-INF=${project.build.outputDirectory}/META-INF</Include-Resource>

文档 here .

关于java - 将 maven-bundle-plugin 包含的资源声明为可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54464225/

相关文章:

java - 如何指定jgitflow发布完成触发的自动构建的构建选项?

java - OSGi 声明式服务的绑定(bind)顺序

intellij-idea - 尝试运行 OSGi 调试目标时支持“不支持平台”

Java 2D 数组越界

java - Spring Boot 1.5禁用oauth2安全

java - 我们可以使用 AbstractList 而不是 List 接口(interface)来保存 Arraylist 实例吗?

maven - Gradle:获取依赖项的实际快照文件名

gradle - gradle:带有OSGI/SCR插件的OSGI-INF文件夹的问题

java - 扩展抽象类的玩家没有被渲染

java - 如何在 Java 中按步幅对 int 数组进行切片?