2016-09-30 13 views
7

Вопрос: При запуске Maven в Eclipse, как отправить вывод консоли в файл?Отправить вывод Maven на консоль и файл журнала с помощью pom

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

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

+2

Вы не можете сделать это, ответы у вас есть единственный путь. Как Maven сможет написать файл, прежде чем он прочитает POM? Рассмотрим также многомодульный проект, где эта конфигурация будет только в модуле. – Tunaki

+1

Попробуйте использовать АОП. Удалось перенаправить журналы в файл, применив обрезку по умолчанию org.apache.maven.plugin.logging.Log. Но слишком много усилий ни для чего. Дать ему шанс. – user1615664

ответ

11

По official command line options вы можете использовать -l,--log-file <arg> которые обеспечивают:

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

Как таковой, бег:

mvn clean install -l output.log 

не напечатать бы что-нибудь на консоль и автоматически перенаправить вывод весь сборки в файл output.log.

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

-l output.log 

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

Это агностик решение IDE (это новый встроенный в особенности Maven) и локальный проект, но до сих пор не обеспечивается посредством простого редактирования POM, которая не может быть достигнута, так как первая фаза Maven default life cycle phases является validate, который :

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

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

+0

Даже если вход в окно консоли Eclipse потерян, это самый разумный ответ. –

5

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

+0

Это хороший ответ, но я ищу какой-то способ добиться этого, изменив только пом. Я обновил свой вопрос. –

4

В соответствии с this вы можете попробовать отредактировать ${MAVEN_HOME}/conf/logging/simplelogger.properties. Я дал ему быструю попытку и выход Maven перенаправляется, но ничего другого писать на stdout (тесты, например) до сих пор пишет на консоли

+1

Это правильно, но я ищу решение, которое не изменяет настройки maven. –

+1

Да, я надеялся, что вы можете переопределить эти параметры в разделе файла '' файла проекта, но он не работает ... – agnul