Groovy执行mvn命令

时间:2017-07-18 20:00:31

标签: linux shell maven groovy

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

"mvn clean install -f \{pom directory}\pom.xml".execute()

但是出现以下消息时出现错误

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

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

我也试过“sc -c”前缀。

"sh -c mvn clean install -f \<pom directory\pom.xml".execute()

但这确实没有执行,也没有任何错误。似乎命令被忽略了。

那么我应该如何在groovy脚本中执行maven install?

1 个答案:

答案 0 :(得分:0)

由于 mvn 不是可执行二进制文件而是 shell 脚本,因此不能直接 执行。

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

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