#java #maven
#java #maven
Вопрос:
У меня есть некоторая автоматизация, которая использует mvn
для загрузки артефактов в локальную файловую систему, чтобы их можно было использовать за пределами maven. В принципе, я делаю что-то вроде этого:
#!/bin/bash
mvn dependency:get
-DgroupId="my.group.id"
-DartifactId="$1"
-Dversion="$2"
-Dpackaging="war"
-DremoteRepositories="http://my.repo/nexus/content/repositories/foo"
Проблема (и это не на самом деле проблема) заключается в том, что я получаю следующий вывод:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building some-other-project 1.2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Если мне случится запустить это из подпапки some-other-project
. Это сбивает с толку человека, выполняющего этот скрипт, поскольку dependency:get
выполнение фактически не создает проект. Если не считать захвата и обработки выходных данных для удаления этой информации, есть ли простой способ сообщить mvn
, что он просто запускает цель без связанного проекта?
Ответ №1:
Вы можете подавить весь INFO
вывод, передав --quiet
флаг (или -q
).
Если вы хотите сохранить некоторые INFO
, отбросив остальные, вы можете определить все компоненты, которые вы хотели бы отключить, выполнив поиск в Maven github и настроить свойства ведения журнала, чтобы исключить их.
Например. вы можете добавить следующий флаг: -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.event.ExecutionEventLogger=ERROR
для этого Scanning for projects...
сообщения.
Комментарии:
1. Мне нужна
INFO
информация, чтобы мои пользователи знали, что что -то происходит (учитывая, что загрузка может занять некоторое время, если артефакт большой). Просто не хочу, чтобы он лгал о том, что он делает…2. @Lucas обновил ответ с учетом этого случая / logging.properties
3. Вау! Идеальный. Большое вам спасибо!
Ответ №2:
Если есть pom.xml
, он всегда будет использоваться; он может содержать дополнительную информацию для maven-dependency-plugin. Так что нет, нет возможности игнорировать это Building ...
сообщение. Даже попытка сослаться на несуществующий pom-файл ( -f no-pom.xml
) не помогает, потому что Maven теперь предполагает, что этот файл существует.