使用pom将Maven输出发送到控制台和日志文件

时间:2016-09-30 19:55:24

标签: eclipse maven maven-3 pom.xml eclipse-luna

问题:在Eclipse中运行Maven时,如何将控制台输出发送到文件?

我想使用pom设置或maven插件实现此目的。我想要修改运行配置或maven系统设置。

供参考,我使用的是Windows 7,Eclipse Luna,Java 6,Maven 3。

5 个答案:

答案 0 :(得分:17)

根据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编辑提供,这是{{3的第一阶段以来无法实现的是} validate,其中:

  

验证项目是否正确并且所有必要信息都可用

也就是说,在构建期间,因此当构建已经开始(和生成的输出)时,它会验证pom.xml文件,因此在该阶段重定向构建输出为时已晚基于一些POM属性/插件。

答案 1 :(得分:5)

转到运行方式,然后选择Run Configuration -> Commons -> Select a file 这应该将您的输出重定向到您指定的文件。

答案 2 :(得分:4)

根据this,您可以尝试修改${MAVEN_HOME}/conf/logging/simplelogger.properties。我快速尝试了一下,maven的输出被重定向,但写入stdout的任何其他内容(例如测试)仍在控制台上写入

答案 3 :(得分:2)

如何创建M2E分支并修改它以从pom.xml读取启动配置的输出文件

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

答案 4 :(得分:0)

可能的解决方案是在mvn file中设置输出格式。例如,在目录/usr/bin中,添加所需的输出,通知日志将在exec "$JAVACMD" \行末尾保存的路径: | tee /home/maven-log.log

但是,它仅在终端线调用maven时有效;当被IDE调用时,比如eclipse,这个解决方案不起作用。