Исправление
tldr: мне удалось воспроизвести вашу проблему, а затем исправить ее, переместив вытащите элемент <resources>
из конфигурации плагина прямо под <build>
вот так:
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>*</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- <snip> Other plugins -->
</plugins>
</build>
Будущие читатели, если вас интересует только исправление, не читайте дальше. Для бесстрашных ТАК кровавые подробности ждут ниже!
Почему я это сделал?
Я сделал это, так как именно так я включил фильтрацию ресурсов в предыдущем проекте. Мне не нужно было менять фазу по умолчанию (process-resources
) и, следовательно, вообще не нужно было явно указывать maven-resources-plugin
. Однако мне было любопытно узнать, почему конфигурация OP не работает, и поэтому я посмотрел примеры для resources
mojo в maven-resources-plugin документация, в которой <resources>
указано непосредственно под <build>
.
Формулировка в документации по Использование подразумевает, что конфигурация <resources>
требуется в конфигурации плагина только для copy-resources
mojo:
Обновлять
Нужно было начать с введения maven-resources-plugin, которое явно состояния:
resources:resources копирует ресурсы основного исходного кода в основной выходной каталог.
Эта цель обычно выполняется автоматически, поскольку по умолчанию она привязана к фазе жизненного цикла ресурсов процесса. Он всегда использует элемент project.build.resources для указания ресурсов и по умолчанию использует project.build.outputDirectory для указания места назначения копирования.
Странности Intellij?
У меня возникает соблазн предположить, что Intellij не виноват.
В Intellij 15.0.2 поведение фильтрации (т. е. работает оно или нет) было одинаковым при выполнении mvn clean compile
из Intellij или из командной строки. Я бы подумал, что проблема была в конфигурации плагина/pom, а не в самом Intellij, если только в интеграции Intellij maven нет ошибки. Что бы это ни стоило, я еще не сталкивался с этой проблемой при использовании maven из Intellij (использую его уже некоторое время, начиная с версии 12.x).
Использует ли ваш Intellij связанный mvn, который отличается от mvn, используемого командной строкой? то есть maven такой же, как здесь и из командной строки? Это единственное, о чем я могу думать, помимо ошибки в интеграции Intellij maven (маловероятно), которая может объяснить различное поведение, которое вы видите.
person
Ashutosh Jindal
schedule
18.12.2015