Отправить вывод Maven в консоль и файл журнала с помощью pom

вопрос: при запуске Maven в Eclipse, как отправить вывод консоли в файл?

Я хотел бы достичь этого, используя настройку pom или плагин maven. Я делаю не хотите изменить конфигурации запуска или системные настройки maven.

для справки, я использую Windows 7, Eclipse Luna, Java 6, Maven 3.

5 ответов


по состоянию на официальные параметры командной строки вы могли бы использовать -l,--log-file <arg>, которые обеспечивают:

Log-файл, в который будет отправлен весь вывод сборки.

таким образом, работает:

mvn clean install -l output.log

не будет ничего печатать на консоли и автоматически перенаправлять весь вывод сборки до .

если вы не хотите вводить его каждый раз (или вы вообще не хотите использовать командную строку) и вы хотите его как вариант по умолчанию (хотя редкий случай, я бы предположил), вы можете использовать новые параметры командной строки, доступные с версии 3.3.1 и .mvn папка, где заинтересованные pom.xml файл находится и maven.config файл в нем просто предоставляет следующую строку:

-l output.log

то есть заменяет MAVEN_OPTIONS только для своего проекта,локально где он был создан, с параметрами, которые он предоставляет, не влияя другие сборки в соответствии с настройками Maven MAVEN_OPTIONS.

это АГНОСТИЧЕСКОЕ решение IDE (это новая встроенная функция Maven) и локальное для проекта, но все еще не предоставленное с помощью простого редактирования POM, которое не может быть достигнуто с первого этапа Maven фазы жизненного цикла по умолчанию is validate, где:

проверить правильность проекта и вся необходимая информация доступна

то есть, во время сборки, поэтому когда сборка уже началась (и вывода), он проверяет pom.xml файл, следовательно, слишком поздно перенаправлять вывод сборки на этом этапе на основе некоторых свойств POM / плагина.


перейдите в run as и выберите Run Configuration -> Commons -> Select a file.
Это должно перенаправить ваш вывод в указанный вами файл.


по данным этой вы можете попробовать редактирования ${MAVEN_HOME}/conf/logging/simplelogger.properties. Я дал ему быструю попытку, и вывод maven перенаправляется, но все остальное записывается в stdout (тесты, например) все еще пишет на консоли


Как насчет создания вилки M2E и изменения ее для чтения выходного файла для конфигурации запуска из pom.в XML

https://github.com/eclipse/m2e-core.git


возможным решением является установка выходного формата в mvn file. Например, в каталоге /usr/bin, добавьте желаемый вывод, сообщающий путь, журнал будет сохранен в конце exec "$JAVACMD" \ строку: / tee / home / maven-log.log.

однако он работает только тогда, когда maven вызывается терминальной линией; при вызове IDEs, например eclipse, эти решения не работают.