2013-06-09 2 views
1

Я использую groovy + gmaven + maven для автоматизации/построения процедуры сборки.
Когда я использую задачу ant sshexec из скрипта groovy, который, в свою очередь, выполняется из раздела плагина gmaven, у меня есть информация о журнале, полученная от sshexec. Интересно, можно ли написать NO выход при использовании ant.sshexec() из groovy-скрипта? У меня есть следующий сценарий:groovy ant sshexeс no output

def ant = new AntBuilder() 
    ant.sshexec(host: host, 
      port: port, 
      trust: true, 
      username: user, 
      password: pass, 
      command: "if test -d ${installDir}; then echo true; else echo false; fi", 
      outputproperty: 'doesInstallDirExist') 

И выход:

[sshexec] Connecting to 192.168.56.101:22 
[sshexec] cmd : if test -d /mango/tomcat7/webapps; then echo true; else echo false; fi 

Могу ли я подавить/скрыть это?

Заранее благодарен!

ответ

3

Или, вы пробовали:

ant.project.buildListeners.firstElement().messageOutputLevel = 0 
+0

Это сработало! Хотя ответ @dmahapatro «более прав» и должен работать, но в моем случае это не из-за версии maven, я думаю. –

+0

@ mr.nothing Нет, этот ответ уместен здесь, чтобы подавить журнал задач Ant. Я правильно перечитаю ваш вопрос. – dmahapatro

2

Существует не простой способ сделать это так, то sshexec Ant задача не подвергая какой-либо вариант, чтобы быть спокойнее.

Но поскольку вы находитесь в Groovy, вы можете получить доступ к регистратору и отключить ведение журнала только при выполнении задачи sshexec. Вот фрагмент кода для временного увеличения уровня ведения журнала:

def ant = new AntBuilder(); 
def logger = ant.project.buildListeners.firstElement(); 
logger.messageOutputLevel = org.apache.tools.ant.Project.MSG_WARN; 
ant.sshexec(...) 
logger.messageOutputLevel = org.apache.tools.ant.Project.MSG_INFO; 
+0

Да, понял! Спасибо за такое хорошее объяснение! –