以编程方式从groovy脚本设置MAVEN_OPTS

时间:2016-01-05 20:07:32

标签: groovy

我正在尝试在groovy中编写构建脚本,并且我希望确保根据构建脚本配置设置MAVEN_OPTS。

我拥有的是:

def process = ['export MAVEN_OPTS=\"-Xmx' + config.buildEnvironment.maxMemory + ' -XX:MaxPermSize=' + config.buildEnvironment.maxPermSize + '\"'].execute()
process.in.eachLine { line ->               
   println(line)                            
}

config.buildEnvironment.maxMemory解析为 1024m config.buildEnvironment.maxPermSize解析为 512m

这个输出是:

Caught: java.io.IOException: Cannot run program "export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"": error=2, No such file or directory
java.io.IOException: Cannot run program "export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"": error=2, No such file or directory
    at MavenUtils.setMavenDefaultOpts(MavenUtils.groovy:23)
    at MavenUtils$setMavenDefaultOpts.call(Unknown Source)
    at build.run(build.groovy:19)
Caused by: java.io.IOException: error=2, No such file or directory
    ... 3 more

我通过我的脚本使用String.execute()功能来构建maven项目,复制文件等,但这是我第一次遇到这种类型的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

原来这是不可能的。

我将这个逻辑封装到一个shell脚本中并执行它,这就是我将如何解决这个问题。

答案 1 :(得分:0)

可能不可能。但是,因为export是shell内置的,你应该运行:

['sh', '-c', 'export', 'LOL=LOL'].execute().in.eachLine { println it }