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

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

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

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

mvn assembly:directory

Я получаю МНОГО консольного вывода, как показано ниже:

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

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

Итак, мне трудно понять:

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

Ответы [ 6 ]

12 голосов
/ 27 декабря 2010

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

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

9 голосов
/ 05 декабря 2013

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

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

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

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

    org.slf4j.simpleLogger.showLogName = верно

  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 = предупредит

2 голосов
/ 23 января 2012

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

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

1 голос
/ 26 августа 2012

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>
1 голос
/ 09 апреля 2010

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

...