Текстовый журнал командной строки - PullRequest
0 голосов
/ 07 декабря 2011

Я набираю команду для 'mvn -U clean install' в командной строке, которая выполняется некоторое время, а затем сообщает, «BUILD SUCCESSFUL» или «BUILD FAILED» только в командной строке.

Я хочу реализовать что-то, что будет продолжать синтаксический анализ текста в том виде, в каком он появляется в командной строке, чтобы при совпадении текста с «BUILD SUCCESSFUL» или «BUILD FAILED» всплыло соответствующее сообщение не открывайте командную строку между ними, чтобы проверить, завершена ли сборка или произошел сбой в промежутке).

Итак, мой вопрос: как это можно сделать? Где я могу найти журнал для текста, сгенерированного в командной строке, который я могу проанализировать? Или я могу разобрать его непосредственно в командной строке, когда он генерирует?

Спасибо!

Ответы [ 6 ]

1 голос
/ 07 декабря 2011

вы можете сделать это с помощью пакета. Вы запускаете вывод программы в файл, а затем запускаете приложение, чтобы прочитать файл. Вот пример:

@echo off
buildCommand >> output.txt
java yourParserProgram output.txt
0 голосов
/ 07 декабря 2011

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

Полагаю, вы можете использовать это и для несистемной команды.

0 голосов
/ 07 декабря 2011

Вот почему Бог изобрел оболочки и языки сценариев ...

0 голосов
/ 07 декабря 2011

Вы, вероятно, можете сделать

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
0 голосов
/ 07 декабря 2011

У вас есть много разных вариантов там. Например, вы можете открыть командную строку через Java-процесс, а затем отсканировать и проанализировать вывод в Java с помощью Scanner ..!?

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

У вас есть идея, теперь вы можете открыть и проанализировать выходной файл ..

0 голосов
/ 07 декабря 2011

Что вы можете сделать, это запустить команду mvn из вашей java-программы и перенаправить ее вывод либо в поток, либо в файл, который вы можете прочитать по своему усмотрению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...