2016-04-03 1 views
1

Мне нужно знать, в какой фазе цикла maven jsp помещается в целевой каталог и каким процессом.Во время фазы maven jsp ставится на цель?

Я использую grunt-maven-plugin для преобразования на мои файлы .jsp (я генерирую вставку js-скриптов, если вы хотите знать).

Grunt дублирует файл jsp во временном каталоге, выполняет его работу и помещает обновленный jsp в каталог target/$ {project.build.name}. (если я только запускаю grunt, я могу проверить его работу)

Моя проблема в том, что обновленный файл перезаписывается исходным jsp, который перемещается в этом же хранилище.

Если я только запускаю хрюканье (я делаю mvn compile, кто запускает задачу ворчания), я могу отлично проверить свою работу. Но если я сделаю mvn install, файлы будут перезаписаны.

Я думаю, что могу исправить это, запустив grunt после того, как исходный jsp перемещен.

Вопрос: Вы знаете, во какой фазе цикла Maven СПЯ ставятся на целевой каталог?

Мой проект - webapp с веб-сайта maven artapp, кстати.

+0

Ваша упаковка 'war'? И вы используете maven-war-plugin, я предполагаю? – khmarbaise

+0

Я упаковываю с войной, но у меня проблема с и без плагина maven-war. – sab

ответ

1

Мне нужно знать, во время какой фазы цикла maven jsp помещаются в целевой каталог и каким процессом.

Во время package фазы по Maven War Plugin и его war цели.

Имея упаковку war, накопление Maven будет по умолчанию вызвать war:war (war из Maven войны Plugin) во время package фазы, в соответствии с default packaging bindings. Следовательно, нет необходимости явно указывать его в вашем POM-файле.

The Maven War Плагин

  • построить полный веб-приложение по умолчанию под ${project.build.directory}/${project.build.finalName}, как указано в его записи webappDirectory конфигурации
  • пакета его как .war файл под ${project.build.directory} по умолчанию, как указано на его outputDirectory запись конфигурации

Моя проблема заключается в том, что обновленный файл перезаписывается исходным jsp, который перемещается в этот же репозиторий.

В этом случае у Вас есть файл конфликт, одни и те же файлы (с разным содержанием) в одной и той же целевой папке (target/${project.build.name}, как вы упомянули такой же, как по умолчанию War Plugin OutputDirectory выше).

Вы можете перенаправить измененные файлы .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 Plugin War выполнен как часть вышеупомянутых привязок.

В приведенном выше фрагменте мы говорим Maven War Plugin, который также включает ресурсы из папки target/grunt. Любой файл .jsp, присутствующий в этой папке, затем будет добавлен в встроенный webapp (в виде папки и .war файл) и переопределит исходные файлы .jsp (как вам действительно хотелось).