Linux Groovy执行mvn命令

Linux Groovy执行mvn命令,linux,shell,maven,groovy,Linux,Shell,Maven,Groovy,我正在编写groovy脚本,并尝试使用execute()方法执行以下shell命令 但收到以下消息时出错 无法运行程序“mvn”:错误=2,没有这样的文件或目录 当然,maven已经安装,并且该命令在终端上运行良好 我还尝试了使用“sc-c”前缀 “sh-c mvn clean install-f\因为mvn不是可执行的二进制文件,而是shell脚本,所以不能直接 执行 这也与执行sh-c…的第二种情况有关。我怀疑环境配置不正确。在这种情况下,输出被写入stderr,这就是您没有看到输出的原因。

我正在编写groovy脚本,并尝试使用execute()方法执行以下shell命令

但收到以下消息时出错

无法运行程序“mvn”:错误=2,没有这样的文件或目录

当然,maven已经安装,并且该命令在终端上运行良好

我还尝试了使用“sc-c”前缀


“sh-c mvn clean install-f\因为
mvn
不是可执行的二进制文件,而是shell脚本,所以不能直接 执行

这也与执行
sh-c…
的第二种情况有关。我怀疑环境配置不正确。在这种情况下,输出被写入stderr,这就是您没有看到输出的原因。请参阅如何捕获stderr


我在Jenkins执行的groovy脚本中遇到了这个问题。例如,在这种情况下,您可以使用
sh'mvn--version'
,并且一切正常。
sh
来自Jenkins DSL。

因为
mvn
不是可执行的二进制文件,而是shell脚本,所以不能直接使用 执行

这也与执行
sh-c…
的第二种情况有关。我怀疑环境配置不正确。在这种情况下,输出被写入stderr,这就是您没有看到输出的原因。请参阅如何捕获stderr


我在Jenkins执行的groovy脚本中遇到了这个问题。例如,在这种情况下,您可以使用
sh'mvn--version'
,并且一切正常。
sh
来自Jenkins DSL。

您是否尝试过
“/complete/path/to/mvn。。。“
?您的操作系统是什么?windows还是linux?我这样问是因为您尝试使用sh并用反斜杠指定路径。在linux上,路径应该像下面这样指定,
/最后,您可以在字符串中使用双反斜杠来转义反斜杠,避免转义下一个字符。。。这就是为什么正斜杠在路径上更好,并且在两种平台上都能工作的原因。您是否了解如何通过groovyscript执行此操作?您是否尝试过
“/complete/path/to/mvn…”
?您的操作系统是什么?windows还是linux?我这样问是因为您尝试使用sh并用反斜杠指定路径。在linux上,路径应该像下面这样指定,
/最后,您可以在字符串中使用双反斜杠来转义反斜杠,避免转义下一个字符。。。这就是为什么正斜杠在路径上更好,并且在两种平台上都能工作的原因。您找到了如何通过groovyscript执行它吗?
"mvn clean install -f \{pom directory}\pom.xml".execute()
"sh -c mvn clean install -f \<pom directory\pom.xml".execute()