«1. Обзор
В этом руководстве описывается плагин ресурсов, один из основных плагинов инструмента сборки Maven.
Обзор других основных плагинов см. в этой статье.
2. Цели плагина
Плагин ресурсов копирует файлы из входных каталогов ресурсов в выходной каталог. Этот плагин имеет три цели, которые отличаются только тем, как указываются ресурсы и выходные каталоги.
Три цели этого подключаемого модуля:
-
ресурсы — копировать ресурсы, которые являются частью основного исходного кода, в основной выходной каталог. testResources — копировать ресурсы, которые являются частью исходного кода теста, в тест. output directory copy-resources — копирует произвольные файлы ресурсов в выходной каталог, требуя от нас указания входных файлов и выходного каталога
Давайте посмотрим на плагин ресурсов в pom.xml:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
...
</configuration>
</plugin>
~~ ~ Мы можем найти последнюю версию этого плагина здесь.
3. Пример
Предположим, мы хотим скопировать файлы ресурсов из каталога input-resources в каталог output-resources и исключить все файлы, заканчивающиеся расширением .png.
Эта конфигурация удовлетворяет этим требованиям:
<configuration>
<outputDirectory>output-resources</outputDirectory>
<resources>
<resource>
<directory>input-resources</directory>
<excludes>
<exclude>*.png</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
Конфигурация применяется ко всем исполнениям подключаемого модуля ресурсов.
Например, когда цель ресурсов этого плагина выполняется с помощью команды mvn resources:resources, все ресурсы из каталога input-resources, кроме файлов PNG, будут скопированы в output-resources.
Поскольку по умолчанию цель ресурсов привязана к фазе ресурсов процесса в жизненном цикле Maven по умолчанию, мы можем выполнить эту цель и все предыдущие фазы, выполнив команду mvn process-resources.
В данной конфигурации есть параметр filtering со значением true. Параметр фильтрации используется для замены переменных-заполнителей в файлах ресурсов.
Например, если у нас есть свойство в POM:
<properties>
<resources.name>Baeldung</resources.name>
</properties>
и один из файлов ресурсов содержит:
Welcome to ${resources.name}!
, тогда переменная будет оцениваться в выходном ресурсе, и результирующий файл будет содержать:
Welcome to Baeldung!
4. Заключение
В этой быстрой статье мы рассмотрели плагин ресурсов и дали инструкции по его использованию и настройке.
Полный исходный код этого руководства можно найти на GitHub.