使用 pom 将 Maven 输出发送到控制台和日志文件
Send Maven output to console and log file using pom
问题: 运行在Eclipse 中使用Maven 时,如何将控制台输出发送到文件?
我想使用 pom 设置或 maven 插件来实现。我不想修改运行配置或maven系统设置。
作为参考,我正在使用 Windows 7,Eclipse Luna,Java 6,Maven 3。
转到 运行 并选择 Run Configuration -> Commons -> Select a file
。
这应该将您的输出重定向到您指定的文件。
根据this,您可以尝试编辑${MAVEN_HOME}/conf/logging/simplelogger.properties
。我快速尝试了一下,maven 的输出被重定向了,但是任何其他写入 stdout
(例如测试)的内容仍然写入控制台
根据 official command line options,您可以使用 -l,--log-file <arg>
,它提供:
Log file where all build output will go.
因此,运行:
mvn clean install -l output.log
不会向控制台打印任何内容并自动将整个构建输出重定向到output.log
文件。
如果你不想每次都输入它(或者你实际上不想使用命令行)并且你希望它作为默认选项(尽管我认为很少见),你可以使用 new命令行选项行为自版本 3.3.1 起可用,并且有一个 .mvn
文件夹,其中包含相关 pom.xml
文件和一个 maven.config
文件,其中仅提供以下行:
-l output.log
也就是说,.mvn/maven.config
文件仅针对其项目替换了 MAVEN_OPTIONS
,本地 在创建它的地方,使用它提供的选项,而不是根据 MAVEN_OPTIONS
.
的 Maven 设置影响其他构建
这是一个 IDE 不可知的解决方案(它是 Maven 的一个新的内置功能)并且是项目本地的,但仍然不是通过简单的 POM 编辑提供的,这自第一阶段以来就无法实现Maven default life cycle phases 是 validate
,即:
validate the project is correct and all necessary information is available
也就是说,在构建期间,因此当构建已经开始(并生成输出)时,它会验证pom.xml
文件,因此为时已晚重定向在那个阶段基于一些 POM properties/plugin.
构建输出
如何创建 M2E 的分支并修改它以从 pom.xml
读取启动配置的输出文件
一种可能的解决方案是在 mvn file
中设置输出格式。例如,在目录 /usr/bin
中,添加所需的输出,告知日志将在 exec "$JAVACMD" \
行末尾保存的路径:| tee /home/maven-log.log.
但是,只有在终端线调用maven时才有效;当被 IDE(如 eclipse)调用时,此解决方案不起作用。
问题: 运行在Eclipse 中使用Maven 时,如何将控制台输出发送到文件?
我想使用 pom 设置或 maven 插件来实现。我不想修改运行配置或maven系统设置。
作为参考,我正在使用 Windows 7,Eclipse Luna,Java 6,Maven 3。
转到 运行 并选择 Run Configuration -> Commons -> Select a file
。
这应该将您的输出重定向到您指定的文件。
根据this,您可以尝试编辑${MAVEN_HOME}/conf/logging/simplelogger.properties
。我快速尝试了一下,maven 的输出被重定向了,但是任何其他写入 stdout
(例如测试)的内容仍然写入控制台
根据 official command line options,您可以使用 -l,--log-file <arg>
,它提供:
Log file where all build output will go.
因此,运行:
mvn clean install -l output.log
不会向控制台打印任何内容并自动将整个构建输出重定向到output.log
文件。
如果你不想每次都输入它(或者你实际上不想使用命令行)并且你希望它作为默认选项(尽管我认为很少见),你可以使用 new命令行选项行为自版本 3.3.1 起可用,并且有一个 .mvn
文件夹,其中包含相关 pom.xml
文件和一个 maven.config
文件,其中仅提供以下行:
-l output.log
也就是说,.mvn/maven.config
文件仅针对其项目替换了 MAVEN_OPTIONS
,本地 在创建它的地方,使用它提供的选项,而不是根据 MAVEN_OPTIONS
.
这是一个 IDE 不可知的解决方案(它是 Maven 的一个新的内置功能)并且是项目本地的,但仍然不是通过简单的 POM 编辑提供的,这自第一阶段以来就无法实现Maven default life cycle phases 是 validate
,即:
validate the project is correct and all necessary information is available
也就是说,在构建期间,因此当构建已经开始(并生成输出)时,它会验证pom.xml
文件,因此为时已晚重定向在那个阶段基于一些 POM properties/plugin.
如何创建 M2E 的分支并修改它以从 pom.xml
读取启动配置的输出文件一种可能的解决方案是在 mvn file
中设置输出格式。例如,在目录 /usr/bin
中,添加所需的输出,告知日志将在 exec "$JAVACMD" \
行末尾保存的路径:| tee /home/maven-log.log.
但是,只有在终端线调用maven时才有效;当被 IDE(如 eclipse)调用时,此解决方案不起作用。