Сгенерированный файл в неправильном месте
Я использую плагин ресурсов maven для генерации простого файла с помощью фильтрации в файле war. У меня есть файл шаблона с переменными в папке src / main / webapp / app
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/webapp/app</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
проблема в том, что сгенерированный файл находится в папке WEB-INF/classes, и мне нужно, чтобы он был в папке приложения в корне войны. Структура войны должна быть
*.jsf
app/<generated_file>
WEB-INF/
Как мне это сделать?
2 ответа
Вы должны добавить copy-resources
цель, если вы хотите скопировать что-то в другую структуру во время сборки, с помощью которой вы можете указать собственный путь вывода:
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
Это можно найти здесь в документации.
С комментариями я наконец смог получить решение. Было просто установить параметр outputDirectory в src/main/webapp/app и поместить шаблон в другое место вне src/main/webapp. В моем случае я положил его в папку src/main/jnlp. Итак, наконец, это было решение.. надеюсь, это поможет другим
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/webapp/app</outputDirectory>
<resources>
<resource>
<directory>src/main/jnlp</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>