繁体   English   中英

Groovy 执行 mvn 命令

[英]Groovy executing mvn command

我正在编写 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 呢?

我正在编写 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 呢?

在 windows 上,mvn 不是 exe 文件,而是命令 (mvn.cmd)。 我通过以下方式解决了这个问题:

def cmd = ""
if (System.properties['os.name'].toLowerCase().contains('windows')) {
    println "On Windows mvn is a CMD and not an EXE"
    cmd = "mvn.cmd wrapper:wrapper"
} else {
    println "Execute just the mvn executable on non Windows systems"
    cmd = "mvn wrapper:wrapper"
}
def process = cmd.execute(null, rootDir)
process.waitForProcessOutput((Appendable)System.out, System.err)
if (process.exitValue() != 0) {
    println "WARNING: Command '$cmd' exited with code: ${process.exitValue()}"
    println "WARNING: you can initialize the maven wrapper by yourself:}"
    println "WARNING: go to $rootDir and type in 'mvn wrapper:wrapper'}"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM