У меня была та же проблема, и я много возился с этой проблемой, поэтому я отвечу, хотя этот вопрос довольно старый. Как заявили Леандро и Фил, можно использовать maven-replacer-plugin. Но их решение не сработало для меня. Включение useCache
вызвало ошибку, из-за которой невозможно было построить проект. Кроме того, я не могу заставить вещь с автоматической очисткой работать должным образом.
Поскольку мне еще не разрешено комментировать сообщение, я предоставлю полное решение здесь:
Прежде всего, настройте maven-replacer-plugin:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.3.7</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>target/${project.build.finalName}/static/**/*.css</include>
</includes>
<regex>false</regex>
<token>someString</token>
<value>replaceString</value>
</configuration>
</plugin>
До того, как настоящая война будет построена, мы создаем взрывную войну. Это означает, что все содержимое файла war хранится в подкаталоге (по умолчанию это target / $ {project.build.finalName}). После этого maven-replacer-plugin изменит содержимое файлов, как мы указали. Наконец, .war будет упакован в фазе пакета заданием default-war
. Чтобы избежать переопределения содержимого папки с разобранной войной, необходимо установить warSourceDirectory
в каталог, где хранятся материалы с разобранной войной. Следующий фрагмент конфигурации сделает эту работу:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>prepare</id>
<phase>prepare-package</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
<execution>
<id>default-war</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
Пакет с замененным контентом может быть собран с использованием
mvn clean package