Ant 从Gradle设置环境变量

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执行一个依赖于环境变量的Ant脚本。 Ant使用
来实现它

我试图在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)