我试图从Groovy脚本中运行Maven构建。看来似乎找不到Maven。
我已经检查了path变量,它包含正确的路径。如果我专门通过C:/…/mvn.cmd
执行mvn,那么它可以工作。
我现在使用System.getenv()
来修复丢失的Java_home变量,但这对mvn没有帮助。奇怪的是,git …
之类的命令即使在没有指定环境的情况下也能正常工作。
我也知道我可以通过打开cmd并在其中运行命令来解决此问题,但是我不能这样做,因为它也必须在Mac或Linux机器上运行。
File workingDir = new File(*MYWORKINGDIRECTORY*)
def mvnbuild = 'mvn package'.execute(System.getenv().collect { k,v -> "$k=$v" },workingdir)
mvnbuild.waitForProcessOutput(System.out,System.err)
这将产生以下错误消息:
2019-11-05 13:57:12.631 ERROR *MYSCRIPT* FAILED.
Reason:
java.io.IOException: Cannot run program "mvn" (in directory "C:\Users\*MYWORKINGDIRECTORY*"): CreateProcess error=2,The system cannot find the file specified
如果我通过此命令运行其他命令,例如where
可以正常工作:
def mvnbuild = 'where mvn'.execute(System.getenv().collect { k,System.err)
产生
C:\*THECORRECTMAVENPATH*\apache-maven-3.6.0\bin\mvn
C:\*THECORRECTMAVENPATH*\apache-maven-3.6.0\bin\mvn.cmd
尽管如果我尝试运行npm
PS:我还检查了System.getenv()
,它包含正确的Maven路径。