Maven groovy ant sshexec无输出

Maven groovy ant sshexec无输出,maven,ant,groovy,gmaven,Maven,Ant,Groovy,Gmaven,我正在使用groovy+gmaven+maven来自动化/构造构建过程。 当我在groovy脚本中使用ant sshexec任务时,它又从gmaven插件部分执行,我得到了一些来自sshexec的日志信息。我想知道在groovy脚本中使用ant.sshexec()时是否可以不写输出?我有以下脚本: def ant = new AntBuilder() ant.sshexec(host: host, port: port, trust: tr

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

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
我可以抑制/隐藏它吗

或者,您是否尝试过:

ant.project.buildListeners.firstElement().messageOutputLevel = 0
或者,您是否尝试过:

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

要做到这一点,没有简单的方法,
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;

要做到这一点,没有简单的方法,
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;

成功了!虽然@dmahapatro的答案“更正确”,应该可以工作,但在我的情况下,这不是因为maven版本,我想。@mr.nothing不,为了抑制Ant任务日志,这个答案在这里是合适的。我正确地重读了你的问题。这很有效!虽然@dmahapatro的答案“更正确”,应该可以工作,但在我的情况下,这不是因为maven版本,我想。@mr.nothing不,为了抑制Ant任务日志,这个答案在这里是合适的。我正确地重读了你的问题。