我在命令提示符下键入'mvn -U clean install'命令,该命令运行一段时间,然后仅在命令提示符下通知'BUILD SUCCESSFUL'或'BUILD FAILED'。
我想实现一些将继续解析命令提示符上显示的文本的内容,这样当文本匹配'BUILD SUCCESSFUL'或'BUILD FAILED'时,它会弹出相关的消息(以便避免继续在中间打开命令提示符以检查Build是否已完成或中间是否已失败。
所以,我的问题是:如何做到这一点?在哪里可以找到命令提示符下生成的文本的日志,我可以解析它?或者我可以在生成时直接在命令提示符下解析它?
谢谢!
答案 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
我相信你也可以将它用于非系统命令。