Ant 从Gradle设置环境变量
我需要从Gradle执行一个依赖于环境变量的Ant脚本。 Ant使用Ant 从Gradle设置环境变量,ant,environment-variables,gradle,Ant,Environment Variables,Gradle,我需要从Gradle执行一个依赖于环境变量的Ant脚本。 Ant使用来实现它 我试图在Gradle中执行env.foo=“bar”,但它抛出了一个Groovy异常 将环境变量从Gradle传递到Ant的正确方法是什么?一般来说,不可能从Gradle或JVM设置环境变量,但可以像这样欺骗Ant: ant.project.properties['env.foo'] = 'bar' 从表面上看,我认为这样的事情是可能的 test { environment "LD_LIBRARY_PATH",
来实现它
我试图在Gradle中执行env.foo=“bar”
,但它抛出了一个Groovy异常
将环境变量从Gradle传递到Ant的正确方法是什么?一般来说,不可能从Gradle或JVM设置环境变量,但可以像这样欺骗Ant:
ant.project.properties['env.foo'] = 'bar'
从表面上看,我认为这样的事情是可能的
test {
environment "LD_LIBRARY_PATH", "lib"
}
或者在这种情况下,你可以用这个
systemProperty "java.library.path", "lib"
@Sergey接受的解决方案:
ant.project.properties['env.foo'] = 'bar'
在gradle
2.9和ant
1.9.7上对我不起作用。
这没有抛出任何错误,但什么也不做。事实上,如果您正在查看代码it:
提及其他几种方式(注意,无项目):
您是否尝试通过
Ant.importBuild'build.xml'
使用Ant构建脚本?@Benjamin这就是我试图实现的目标。不幸的是,遗留的Ant脚本依赖于几个环境变量。我希望两年前我有Gradle 2.0:)我在build.Gradle文件中尝试了这一点(使用另一个变量名)。然后我在测试中检查系统变量,如下所示:assertTrue(system.getenv().containsKey(“SOME_test_VAR”)代码>这会给出一个断言错误。因此,似乎未设置环境变量。我收到一个错误,即:我找不到参数的方法systemProperty()
我收到一个错误:找不到任务'
public Hashtable<String, Object> getProperties() {
return PropertyHelper.getPropertyHelper(this).getProperties();
}
public Hashtable<String, Object> getProperties() {
//avoid concurrent modification:
synchronized (properties) {
return new Hashtable<String, Object>(properties);
}
}
ant.project.setProperty('env.foo', 'bar')
ant.buildDir = buildDir
ant.properties.buildDir = buildDir
ant.properties['buildDir'] = buildDir
ant.property(name: 'buildDir', location: buildDir)