【问题标题】:Issue with creating custom tag library using OSGI bundle使用 OSGI 包创建自定义标签库的问题
【发布时间】:2013-09-20 13:25:29
【问题描述】:

我正在尝试通过在 cq 中使用 OSGI 包来创建自定义标签库。实际上我创建了所有必要的文件,但我无法在构建时将 mytags.tld 文件放在 META-INF 文件夹下。为此,我使用了maven-bundle-plugin 插件。这是我将资源包含在 META-INF 文件夹中的代码

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
        <instructions>
            <Include-Resource>META-INF/myTags.tld=target/classes/META-INF/myTags.tld</Include-Resource>
        </instructions>
        <Export-Package>com.mine.*</Export-Package>
        <Import-Package>*;resolution:=optional</Import-Package> 
        <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>                   
    </configuration>
</plugin>

注意:我已将标记文件放在“src\main\resources\META-INF\myTags”下

我使用了&lt;Include-Resource&gt; 来包含我的 tld 文件。但是创建 jar 文件后,我可以在 META-INF 文件夹下看到我的 tld 文件。

这是我的构建错误

[ERROR] Bundle com.mine-bundle:bundle:1.0-SNAPSHOT : 输入文件没有 不存在:目标/类/META-INF/myTags.tld

谁能告诉你可能是什么问题?

【问题讨论】:

    标签: tags maven-3 aem osgi-bundle


    【解决方案1】:

    我认为&lt;Include-Resource&gt; 参数是多余的。如果您不指定它,maven-bundle-plugin 将包含从 src/main/resources 到输出 JAR 的所有资源,正如 official doc 所说:

    默认情况下,bundle 插件会转换项目的 Maven 资源 目录到一个单一的指令。如果你 指定您自己的指令,这将取代 生成一个。

    因此,如果您将 TLD 文件放置在 src/main/resources/META-INF 中,则应将其包含在内,而无需其他选项。

    【讨论】:

      【解决方案2】:

      如果没有 src/main/resources 文件夹,我在 IntelliJ 中遇到了这个问题。将虚拟属性文件添加到该位置可以修复它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-06
        • 2016-06-01
        • 2012-01-24
        • 1970-01-01
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多