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

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

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

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

mvn assembly:directory

Я получаю МНОГО выводов на консоль вроде следующего:

[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

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

Итак, мне сложно понять:

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


person gMale    schedule 07.04.2010    source источник


Ответы (6)


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

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

person vocaro    schedule 27.12.2010
comment
Обновление до последней версии maven-assembly-plugin исправило это для меня. - person GuiSim; 04.03.2014
comment
@GuiSim спасибо, что у меня сработало. Я использовал версию 2.5.5. maven.apache.org/plugins/maven-assembly-plugin/usage. html - person shashaDenovo; 08.07.2015
comment
Ссылка, кстати, битая. - person Slava Semushin; 18.07.2019

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

person Attila    schedule 05.12.2013
comment
Это устранило эту неприятную для меня проблему. Спасибо! - person Michael Herrmann; 23.01.2014

  1. Обновите Maven до версии 3.1.x или выше - см. http://maven.apache.org/maven-logging.html

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

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

    org.slf4j.simpleLogger.showLogName = true

  3. Обратите внимание на нежелательный мусор в выводе сборки:

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

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

person Steve Jones    schedule 22.01.2014

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

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

person pharsfalvi    schedule 23.01.2012

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

person khmarbaise    schedule 09.04.2010
comment
Спасибо за ответ. Плагин maven-dependency-plugin, похоже, не подходит для моих нужд. Фактически, я попробовал это несколько недель назад и, покопавшись, обнаружил, что он больше ориентирован на копирование артефактов (таких как JUnit), чем на наборы файлов. Похоже, что цель assembly: directory - лучший выбор для перемещения (сборки) наборов файлов в выходной каталог. Насколько я понимаю, плагин сборки предназначен для случаев, когда вы хотите сгруппировать вещи в одном месте, обычно для архивирования. Сейчас моя единственная проблема в том, что я не могу понять, как подавить / избежать уже добавленных сообщений. - person gMale; 09.04.2010
comment
Хм .. maven-dependency-plugin (maven.apache. или было бы неплохо взглянуть на maven-cargo-plugin (cargo.codehaus.org / Maven2 + plugin), потому что он может запускать / останавливать / развертывать на tomcat и т. Д. Кстати: какую версию сборки-плагина вы используете? Возможно обновление до новейшего .. - person khmarbaise; 14.04.2010
comment
Это не совсем решает мою проблему, но я приму ваш ответ, так как других у меня нет. Важна мысль, верно? ржу не могу - person gMale; 02.07.2010
comment
@gmale не принимает ответы, если не отвечает на ваш вопрос. Я пришел в надежде решить свою проблему. Я остался разочарован :( - person myusuf3; 23.09.2010
comment
@garbagecollector: извините за неудобства. Но вопрос оставался без ответа 3 месяца. Никто другой даже не пытался. Я считаю, что будет справедливо отдать должное этому парню за попытку. В конце концов, ответ, который я принимаю, и правильный ответ - не обязательно одно и то же. В качестве встречного примера, кто-то может правильно ответить на мой вопрос в оскорбительной манере. Это был бы правильный ответ, но я бы не принял его. - person gMale; 23.09.2010
comment
@gmale Я полностью не согласен. задается вопрос, правильный ответ - тот, который больше всего помог пользователю в решении проблемы. Если никто не смотрел на это в течение 3 месяцев, назначьте за это вознаграждение. - person myusuf3; 23.09.2010
comment
@gmale Почему бы не проголосовать за него, но не принять его, пока не будет опубликован правильный ответ (например, вокаро)? - person Lyle; 04.02.2011
comment
@Lyle: Я был бы согласен с вами и пыльным, если бы, когда я зависал над галочкой, он сказал правильный ответ. Однако там написано «принятый ответ», который я определяю как ответ, который я принимаю. Это субъективное решение - каждому свое. Принять! = Правильно. Поскольку принятие не является постоянным, я думаю, это еще раз иллюстрирует мою точку зрения. Если кто-то даст лучший ответ, я изменю то, что принимаю. До тех пор, если есть только один участник, будет только один победитель. - person gMale; 10.02.2011

maven 3.0.4:

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

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

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

Соответствие имени папки исключает все, а не саму папку. Папки действительно появляются в выводе, и никаких сообщений о «пропуске» уровня ИНФОРМАЦИИ нет.

<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>
person AndyS    schedule 26.08.2012