1. Обзор
В этом руководстве описывается подключаемый модуль ресурсов
, один из основных подключаемых модулей инструмента сборки Maven.
Обзор других основных плагинов см. в этой статье .
2. Цели плагина
Плагин ресурсов
копирует файлы из входных каталогов ресурсов в выходной каталог. Этот плагин имеет три цели, которые отличаются только тем, как указываются ресурсы и выходные каталоги.
Три цели этого плагина:
ресурсы
— копировать ресурсы, которые являются частью основного исходного кода, в основной выходной каталогtestResources
— скопировать ресурсы, которые являются частью исходного кода теста, в выходной каталог теста.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>ForEach</resources.name>
</properties>
и один из файлов ресурсов содержит:
Welcome to ${resources.name}!
затем переменная будет оцениваться в выходном ресурсе, и результирующий файл будет содержать:
Welcome to ForEach!
4. Вывод
В этой быстрой статье мы рассмотрели плагин ресурсов
и дали инструкции по его использованию и настройке.
Полный исходный код этого руководства можно найти на GitHub .