Во время какой фазы 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 файлы (как вы на самом деле хотели).

Другие вопросы по тегам