命令提示文本日志

时间:2011-12-06 21:08:28

标签: java parsing maven command-prompt

我在命令提示符下键入'mvn -U clean install'命令,该命令运行一段时间,然后仅在命令提示符下通知'BUILD SUCCESSFUL'或'BUILD FAILED'。

我想实现一些将继续解析命令提示符上显示的文本的内容,这样当文本匹配'BUILD SUCCESSFUL'或'BUILD FAILED'时,它会弹出相关的消息(以便避免继续在中间打开命令提示符以检查Build是否已完成或中间是否已失败。

所以,我的问题是:如何做到这一点?在哪里可以找到命令提示符下生成的文本的日志,我可以解析它?或者我可以在生成时直接在命令提示符下解析它?

谢谢!

6 个答案:

答案 0 :(得分:1)

您可以使用批处理来完成此操作。您将程序的输出运行到文件中,然后运行您的应用程序以读取该文件。这是一个例子:

@echo off
buildCommand >> output.txt
java yourParserProgram output.txt

答案 1 :(得分:0)

您可以做的是从您的java程序启动mvn命令并将其输出重定向到您可以在方便时阅读的流或文件

答案 2 :(得分:0)

你有很多不同的选择。例如,您可以通过Java Process打开命令提示符,然后使用Scanner扫描并解析Java中的输出。

Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c start command", null, new File(someFilename));

你明白了,现在你可以打开并解析输出文件..

答案 3 :(得分:0)

你可以做

mvn -U clean install ; xmessage 'Maven done'

作为简单通知,然后向后滚动以查看结果。为了获得幻想,像

mvn -U clean install | tee /some/convenient/log.txt
tail -n 10 /some/convenient/log.txt | \
   grep 'BUILD SUCCESSFUL' && xmessage 'Maven happy' || xmessage 'Maven sad'

xmessage还有很多更漂亮的替代品,但大部分时间它确实可以完成工作。

如果您使用的是Windows计算机,那么获得程序完成通知的一种便宜又脏的方法就是排队start声音文件或类似文件。

mvn -U clean install
start.exe C:/Users/Somebody/Documents/Foo.wav

答案 4 :(得分:0)

这就是上帝发明了贝壳和脚本语言的原因......

答案 5 :(得分:0)

http://rosettacode.org/wiki/Execute_a_system_command#Java

我相信你也可以将它用于非系统命令。