我在这里查看这个文档:https://docs.gradle.org/3.4.1/dsl/org.gradle.api.tasks.Exec.html给出了如何关闭/打开tomcat的示例。
然而,它没有很好地解释commandLine期望的确切参数。
所以,下面的代码失败了。你能分享一下吗?
task stopTomcat(type:Exec) {
println "$System.env.TOMCAT"
workingDir "${System.env.TOMCAT}" + '/bin/'
//on windows:
commandLine './catalina.sh stop'
//on linux
//commandLine './stop.sh'
//store the output instead of printing to the console:
standardOutput = new ByteArrayOutputStream()
//extension method stopTomcat.output() can be used to obtain the output:
ext.output = {
return standardOutput.toString()
}
}
我已按上述方式配置了我的任务,但在运行任务时确实失败了。
引起:net.rubygrapefruit.platform.NativeException:不能 开始' ./ catalina stop'
答案 0 :(得分:1)
您使用的是Windows还是Unix?
通常,您需要在平台的命令行终端上识别适合您的命令。然后使用适当的平台风格"在你的Gradle任务中。
例如,我有Tomcat 7.x.要在Unix上关闭,使用$TOMCAT_HOME/bin
中的终端,我会使用./shutdown.sh
。在这种情况下,任务仅使用:
commandLine './shutdown.sh'
在Windows上,我会使用shutdown.bat
。在这种情况下,任务将使用:
commandLine 'cmd', '/c', 'shutdown.bat'
请注意,它正在使用cmd
来调用BAT文件。由于Windows的工作方式,commandLine将为任何BAT文件提供该表单。