maven: война: война восстанавливает войну, даже если содержание не изменилось - почему? - PullRequest
3 голосов
/ 11 февраля 2012

почему плагин maven ear запускает war: war (цель плагина), когда я пытаюсь построить проект ear из netbeans

мой процесс:

Я щелкаю правой кнопкой мыши на проекте ear (который имеет военную зависимость в списке) и сначала Очистите, а затем щелкните правой кнопкой мыши на нем и выберите Построить с зависимостями.Затем он снова строит войну, используя войну: война, и это требует времени.несмотря на то, что в войне не было никаких изменений, но она будет создана заново.

Это то, что говорится:

------------------------------------------------------------------------ Building finweb 1.0-SNAPSHOT ------------------------------------------------------------------------ POM для org.netbeans.external: jdom-1.0: jar: Отсутствует RELEASE71, информация о зависимостях отсутствует. POM для com.ibm:com.ibm.mq:jar:6.0.2.5 отсутствует, информация о зависимости недоступна. POM для com.ibm:com.ibm.mqbind:jar:6.0.2.5 отсутствует, информация о зависимостях недоступна POM для net.sf.saxon: saxon: jar: 10.0-b19 отсутствует, информация о зависимостях недоступна

[зависимость: копия]

[resources: resources] Использование кодировки UTF-8 для копирования отфильтрованных ресурсов.пропустить несуществующий resourceDirectory C: \ Beta \ fin \ finweb \ src \ main \ resources

[compiler: compile] Ничего не компилируется - все классы обновлены

[resources: testResources]Использование кодировки UTF-8 для копирования отфильтрованных ресурсов.пропустить несуществующий resourceDirectory C: \ Beta \ fin \ finweb \ src \ test \ resources

[compiler: testCompile] Ничего не компилируется - все классы обновлены

[верный огонь: тест]Нет тестов для запуска.Каталог отчетов Surefire: C: \ Beta \ fin \ finweb \ target \ surefire-reports

------------------------------------------------------- ИСПЫТАНИЯ ------------------------------------------------------- Нет тестов для запуска.

Результаты:

Выполнено тестов: 0, сбоев: 0, ошибок: 0, пропущено: 0

[война: война] Упаковка веб-приложения Сборка веб-приложения [finweb] в [C: \ Beta \ fin \ finweb\ target \ finweb-1.0-SNAPSHOT] Обработка военного проекта Копирование ресурсов веб-приложения [C: \ Beta \ fin \ finweb \ src \ main \ webapp] Веб-приложение, собранное в [109467 мсек] Создание войны: C: \ Beta \ fin \ finweb \target \ finweb-1.0-SNAPSHOT.war WEB-INF \ web.xml уже добавлен, пропуская

[установить: установить] Установка C: \ Beta \ fin \ finweb \ target \ finweb-1.0-SNAPSHOT.warв C: \ Documents and Settings.m2 \ repository \ com \ comp \ finweb \ 1.0-SNAPSHOT \ finweb-1.0-SNAPSHOT.war Установка C: \ Beta \ fin \ finweb \ pom.xml в C: \ Documents and Settings \5510041.m2 \ репозиторий \ com \ comp \ finweb \ 1.0-SNAPSHOT \ finweb-1.0-SNAPSHOT.pom

So если нечего компилировать, зачем ему снова строить войну, если она уже сделана и изменений нет.это поведение по умолчанию, если смотреть на compile: compile, когда он не компилируется, если в этом нет ничего необходимого, тогда почему война: война делает это, она должна быть разумной, чтобы делать это правильно?

Пожалуйста, поправьте меня, если я ошибаюсь

Заранее спасибо ..

Syed.

Ответы [ 2 ]

3 голосов
/ 17 сентября 2013

Это можно рассматривать как обходной путь.
Следующие конфиги ускорят время сборки.

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-war-plugin</artifactId>
 <version>2.4</version>
 <configuration>
  <useCache>true</useCache>
  <recompressZippedFiles>false</recompressZippedFiles>
 </configuration>
</plugin>

Ссылка: https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html

Также я с нетерпением жду, чтобы упростить войну: фаза войны из жизненного цикла сборки maven по умолчанию.

1 голос
/ 13 февраля 2012

Ваше беспокойство можно понять.Но в принципе maven-war-plugin не знает, что полученный артефакт WAR будет идентичен артефакту, который был создан минуту назад, потому что:

  • Вы можете определить MANIFEST запись, которая содержит текущую сборкуtime.
  • Вы можете включить другой профиль, который полностью изменит изображение.
  • Другие плагины (например, maven-ant-plugin, maven-dependency-plugin) могут добавить что-то в целевой каталог в зависимости отна некоторые изменяющиеся условия (например, свойство из командной строки).

Так что безопаснее каждый раз перестраивать войну.На современных платформах это действительно незначительно.

...