如何使用Gradle comand行设置Java系统属性?

如何使用Gradle comand行设置Java系统属性?,java,gradle,Java,Gradle,我希望能够通过命令行设置系统属性,以便java代码可以访问它。如何实现此功能 下面的例子失败了 命令行 ./gradlew clean test -Dfoo=bar Java代码 @Test public void shouldGetFoo(){ String myProp = System.getProperty("foo"); assertThat(myProp, is("bar")); } build.gradle: test { systemProperty

我希望能够通过命令行设置系统属性,以便java代码可以访问它。如何实现此功能

下面的例子失败了

命令行

./gradlew clean test -Dfoo=bar
Java代码

@Test
public void shouldGetFoo(){
    String myProp = System.getProperty("foo");

    assertThat(myProp, is("bar"));
}
build.gradle:

test {
    systemProperty "foo", System.getProperty("foo")
}
这是必要的,因为测试总是在单独的JVM中运行。实现
JavaForkOptions
(例如
JavaExec
)的所有其他任务类型都具有相同的属性。有关API的详细信息,请参阅。

build.gradle:

test {
    systemProperty "foo", System.getProperty("foo")
}
这是必要的,因为测试总是在单独的JVM中运行。实现
JavaForkOptions
(例如
JavaExec
)的所有其他任务类型都具有相同的属性。有关API的详细信息,请参阅。

build.gradle:

test {
    systemProperty "foo", System.getProperty("foo")
}
这是必要的,因为测试总是在单独的JVM中运行。实现
JavaForkOptions
(例如
JavaExec
)的所有其他任务类型都具有相同的属性。有关API的详细信息,请参阅。

build.gradle:

test {
    systemProperty "foo", System.getProperty("foo")
}

这是必要的,因为测试总是在单独的JVM中运行。实现
JavaForkOptions
(例如
JavaExec
)的所有其他任务类型都具有相同的属性。有关API的详细信息,请参阅。

@ElliottFrisch设置环境变量,而不是属性。@ElliottFrisch设置环境变量,而不是属性。@ElliottFrisch设置环境变量,而不是属性。@ElliottFrisch设置环境变量,而不是属性。为了澄清,-D参数永远不会传递给JVM子进程?或者它们是为某些任务而传递的,而不是测试任务?谢谢。它们永远不会自动传递。所以,为了澄清,-D参数永远不会传递给JVM子进程?或者它们是为某些任务而传递的,而不是测试任务?谢谢。它们永远不会自动传递。所以,为了澄清,-D参数永远不会传递给JVM子进程?或者它们是为某些任务而传递的,而不是测试任务?谢谢。它们永远不会自动传递。所以,为了澄清,-D参数永远不会传递给JVM子进程?或者它们是为某些任务而传递的,而不是测试任务?谢谢。它们不会自动传下来的。