Ответ 1
Информационные сообщения поступают из архива Plexus. В этом выпуске есть открытый отчет об ошибке:
В течение нескольких недель я боролся с 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) разрешить перезапись?
Информационные сообщения поступают из архива Plexus. В этом выпуске есть открытый отчет об ошибке:
Исправлена ошибка Plexus, упомянутая вокаро. Использование модуля maven-assembly-plugin с версией 2.4 (максимально на момент написания) не печатает подробные сообщения.
Вероятно, лучше использовать maven-resources-plugin с целью копирования ресурсов, чтобы собрать нужные вам каталоги в одном месте. Создайте исполнение для вашей основной структуры каталогов и добавьте последующие исполнения для настраиваемых частей. Установка свойства перезаписи цели в true гарантирует, что пользовательские файлы будут перезаписывать значения по умолчанию.
Затем в дескрипторах сборки используйте набор файлов, который вы только что создали.
Переход на 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 = предупредит
Если я правильно понимаю ваш вопрос, вы должны использовать плагин maven-dependency для копирования файлов/перезаписывать вместо использования плагина сборки..
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>