Как я могу отключить плагин сборки maven, который уже добавлен? Или разрешить переписывание?

В течение нескольких недель я боролся с maven, заставляя его правильно развернуть наш проект.

Я почти закончил, но у меня есть одна упрямая маленькая проблема:

Когда я использую плагин сборки maven с целью "каталога", как в

mvn assembly:directory

Я получаю LOTS из консольного вывода следующим образом:

[INFO] tomcat/conf already added, skipping
 [INFO] tomcat/conf/Catalina already added, skipping
 [INFO] tomcat/conf/Catalina/localhost already added, skipping
 [INFO] tomcat/webapps already added, skipping

Я написал собственный дескриптор сборки, который в основном копирует несколько FileSets в различные подкаталоги в нашем каталоге развертывания. Сообщения, подобные приведенным выше, появляются всякий раз, когда файл из одного FileSet копируется в местоположение, в котором еще один FileSet уже создал основную структуру каталогов (и некоторые файлы по умолчанию, которые могут быть перезаписаны).

Итак, мне сложно разобраться:

Как я либо 1) Подавить эти сообщения (но только "уже добавленные" сообщения) или 2) разрешить перезапись?

Ответ 1

Информационные сообщения поступают из архива Plexus. В этом выпуске есть открытый отчет об ошибке:

http://jira.codehaus.org/browse/PLXCOMP-129

Ответ 2

Исправлена ​​ошибка Plexus, упомянутая вокаро. Использование модуля maven-assembly-plugin с версией 2.4 (максимально на момент написания) не печатает подробные сообщения.

Ответ 3

Вероятно, лучше использовать maven-resources-plugin с целью копирования ресурсов, чтобы собрать нужные вам каталоги в одном месте. Создайте исполнение для вашей основной структуры каталогов и добавьте последующие исполнения для настраиваемых частей. Установка свойства перезаписи цели в true гарантирует, что пользовательские файлы будут перезаписывать значения по умолчанию.

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

Ответ 4

  • Переход на Maven 3.1.x или выше - см. http://maven.apache.org/maven-logging.html

    Стандартное распределение Maven, начиная с Maven 3.1.0, использует API SLF4J для ведения журнала в сочетании с простой реализацией SLF4J.

  • Теперь с помощью simplelogger мы имеем мелкомасштабный контроль над сообщениями журнала. Чтобы определить, какой журнал вызывает нежелательные сообщения, отредактируйте MAVEN_HOME/conf/logging/simplelogger.properties и измените следующее:

    org.slf4j.simpleLogger.showLogName = истина

  • Соблюдайте нежелательный мусор в выводе сборки:

    [INFO] org.codehaus.plexus.archiver.jar.JarArchiver - META-INF/MANIFEST.MF already added, skipping
    
  • Вернитесь в simplelogger.properties, уменьшите уровень ведения журнала для нарушителя журнала (ов) по имени класса (также установите showLogName на false)

    org.slf4j.simpleLogger.log.org.codehaus.plexus.archiver.jar.JarArchiver = предупредит

Ответ 5

Если я правильно понимаю ваш вопрос, вы должны использовать плагин maven-dependency для копирования файлов/перезаписывать вместо использования плагина сборки..

Ответ 6

maven 3.0.4:

Я все еще получаю эти сообщения при создании одной банки или комбинированных источников для распространения. http://jira.codehaus.org/browse/PLXCOMP-129 кажется, не в maven.

Мое обходное решение - использовать различные шаблоны исключений и, в частности,% regex [..] для папок. Я не знаю, насколько это стабильно или вообще, и, очевидно, его нужно поддерживать. Однако мы находимся в ситуации, когда мы получаем столько сообщений, которые мы не можем видеть, когда появляется реальное сообщение, нам нужно что-то сделать.

Пропуск УВЕДОМЛЕНИЯ, ЛИЦЕНЗИИ - я помещаю правильные версии объединенного текста позже в сборку. Частичные из зависимостей в любом случае недостаточно хороши.

Соответствие имени папки исключает все, а не сама папка. Папки появляются на выходе и не пропускают сообщения уровня INFO.

<unpackOptions>
  <excludes>
    <exclude>**/NOTICE*</exclude>
    <exclude>**/LICENSE*</exclude>
    <exclude>**/DEPENDENCIES*</exclude>
    <exclude>META-INF/**</exclude>
    <!-- Exclude folders - this removes "skipping" messages -->
    <exclude>%regex[.*/]</exclude>
  </excludes>
</unpackOptions>