我正在使用groovy+gmaven+maven来自动化/构建构建过程。
当我在groovy脚本中使用ant ssheexec任务时,它反过来又从gmaven插件部分执行,我得到了一些来自ssheexec的日志信息。我想知道是否有可能在groovy脚本中使用ant. ssheec()时编写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
我可以抑制/隐藏它吗?
或者,你试过:
ant.project.buildListeners.firstElement().messageOutputLevel = 0
没有一种简单的方法可以做到这一点,sshexec
Ant任务没有暴露任何更安静的选项。
但是由于您是在Groovy中,所以您可以在执行ssheec任务时访问日志记录器并禁用日志记录。下面是临时增加日志级别的代码:
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;