Проблема с созданием пользовательской библиотеки тегов с использованием пакета OSGI

Я пытаюсь создать собственные библиотеки тегов, используя пакеты OSGI в файле cq. На самом деле я создал все необходимые файлы, но не смог поместить файл 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"

Я использовал <Include-Resource> для включения моего файла tld. Но я мог видеть свой файл tld в папке META-INF после создания файла jar.

Вот моя ошибка сборки

[ОШИБКА] Пакет com.mine-bundle:bundle:1.0-SNAPSHOT: входной файл не существует: target/classes/META-INF/myTags.tld

Может кто подскажет в чем может быть проблема?


person Anderson    schedule 20.09.2013    source источник


Ответы (2)


Я думаю, что параметр <Include-Resource> избыточен. Если вы не укажете его, maven-bundle-plugin будет включать все ресурсы из src/main/resources в выходной JAR, как официальный документ говорит:

По умолчанию подключаемый модуль пакета преобразует каталоги ресурсов Maven проекта в одну инструкцию. Если вы укажете собственную инструкцию, она заменит сгенерированную.

Поэтому, если у вас есть файл TLD, помещенный в src/main/resources/META-INF, его следует включить без дополнительных опций.

person Tomek Rękawek    schedule 20.09.2013

У меня была эта проблема в IntelliJ, если не было папки src/main/resources. Добавление фиктивного файла свойств в это место исправило это.

person Hazel Troost    schedule 10.08.2017