Плагин Spring Boot Maven Включает Ресурсы

пример

можно ли как-то настроить плагин spring boot maven для включения ресурсов из зависимости.

например. если в моем проекте spring boot у меня есть:

<dependency>
        <groupId>co.company</groupId>
        <artifactId>example</artifactId>
    </dependency>

и в этом файле JAR есть файл свойств, такой как example.properties

jar -tf example.jar | grep example.properties | wc -l

результаты в 1.

однако, когда я создаю spring boot JAR, этот файл свойств не добавляется в src/main/resources. Банка, содержащая его, включена в BOOT-INF/lib/example.jar

однако, в моем случае. Я хотел бы извлечь содержимое src/main/resources в багажнике BOOT-INF/classes/ каталог spring boot JAR, чтобы такие вещи, как автоматическая конфигурация, могли его забрать.

Реальном Мире

в реальном мире, я пытаюсь сделать это:

  • шаблоны thymeleaf (например, My dependency JAR предоставляет файлы шаблонов HTML, но в развернутой загрузочной банке эти шаблоны не разрешены)
  • liquibase файлы журнала изменений (моя зависимость включает файлы журнала изменений, но они не выполняются - я предполагаю, что автоконфигурация liquibase не находит файл журнала изменений, потому что он не находится в src/main/resources из загрузочной банки).

1 ответов


Я думаю, что решение этой проблемы будет очень похож на решение для другого вопроса, который вы задали.

можно использовать unpack цель maven-dependency-plugin в вашем модуле весенней загрузки:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>module-a</artifactId>
                        <version>${project.version}</version>
                        <includes>**/*.yaml</includes>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>${project.build.directory}/classes/BOOT-INF/</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

это скопирует ресурсы из module-a to