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

时间:2019-01-31 15:44:19

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

我有一个多模块构建,使用包类型“ bundle”创建了多个工件。

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

我试图在父pom.xml中定义一条指令,该指令将META-INF目录作为资源添加到包中。 不幸的是,对于那些在构建期间未创建META-INF目录的工件,此操作将失败。

以来,我试图避免在当前确实创建META-INF目录的所有模块上定义此规则。
  • 有很多东西
  • 也许其他人会在将来创建META-INF目录,这将要求未来的开发人员知道他们现在必须将该目录添加为资源。

是否可以通过某种方式使此“ 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>

1 个答案:

答案 0 :(得分:1)

使用-前缀资源模式就足够了,例如:

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

文档here