groovy ant sshexec没有输出

时间:2013-06-09 21:46:19

标签: maven ant groovy gmaven

我使用groovy + gmaven + maven来自动化/构建构建过程 当我在groovy脚本中使用ant sshexec任务时,反过来从gmaven插件部分执行,我从sshexec获得了一些日志信息。我想知道在groovy脚本中使用ant.sshexec()时是否可以写NO输出?我有以下脚本:

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

我可以抑制/隐藏它吗?

2 个答案:

答案 0 :(得分:3)

或者,你试过了吗?

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

答案 1 :(得分: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;