Во время какой фазы Maven JSP ставятся на цель?
Мне нужно знать, на каком этапе цикла maven jsp помещается в целевой каталог и каким процессом.
Я использую grunt-maven-plugin
сделать трансформацию на моем .jsp
файлы (я генерирую вставку сценариев JS, если вы хотите знать).
Grunt дублирует файл jsp во временном каталоге, выполняет свою работу и помещает обновленный jsp в каталог target/${project.build.name}. (если я только запускаю grunt, я могу проверить его работу)
Моя проблема в том, что обновленный файл перезаписывается исходным jsp, который перемещается в этот же репозиторий.
если я только запускаю ворчание (я делаю mvn compile
(кто запускает задачу grunt), я могу проверить свою работу в порядке. Но если я сделаю mvn install
, файлы перезаписываются.
Я думаю, что могу исправить это, запустив grunt после перемещения оригинального jsp.
Вопрос: Знаете ли вы, на каком этапе цикла maven jsp помещается в целевой каталог?
Кстати, мой проект - это веб-приложение из веб-приложения артефакта Maven.
1 ответ
Мне нужно знать, на каком этапе цикла maven jsp помещается в целевой каталог и каким процессом.
В течение package
фаза Maven War Plugin и его war
Цель.
Имея упаковку war
сборка Maven будет по умолчанию вызывать war:war
(war
плагина Maven War) во время package
фаза, в соответствии с упаковочными привязками по умолчанию. Следовательно, нет необходимости указывать это явно в вашем файле POM.
Плагин войны Maven будет
- Создайте полное веб-приложение, по умолчанию под
${project.build.directory}/${project.build.finalName}
как указано в егоwebappDirectory
запись конфигурации - Упакуйте это как
.war
файл под${project.build.directory}
по умолчанию, как указано в егоoutputDirectory
запись конфигурации
Моя проблема в том, что обновленный файл перезаписывается исходным jsp, который перемещается в этот же репозиторий.
В этом случае у вас конфликт файлов, одни и те же файлы (с разным содержимым) в одной целевой папке (target/${project.build.name}
как вы упомянули, это то же самое, что и выходной каталог War Plugin по умолчанию выше).
Вы можете перенаправить ваш модифицированный .jsp
скажем, файлы в другом каталоге target/grunt
а затем настройте Maven War Plugin, чтобы он также брал ресурсы из этого каталога. Эти дополнительные ресурсы будут добавлены после ресурсов по умолчанию и, таким образом, переопределят их (в случае конфликтов).
Например, вы можете настроить свой файл POM со следующим дополнением:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>target/grunt</directory>
</resource>
</webResources>
</configuration>
</plugin>
Глобальная конфигурация также будет применена к стандартному военному плагину Maven, который выполняется как часть вышеупомянутых привязок.
В приведенном выше фрагменте мы говорим плагину Maven War также включить ресурсы из target/grunt
папка. любой .jsp
файл, присутствующий в этой папке, будет затем добавлен во встроенное веб-приложение (как папка и .war
файл) и переопределить оригинал .jsp
файлы (как вы на самом деле хотели).