我有一个读取系统属性的Java程序
System.getProperty(“cassandra.ip”);
我有一个Gradle构建文件,我从它开始
梯度测试-Pcassandra.ip=192.168.33.13
或
梯度测试-Dcassandra.ip=192.168.33.13
但是System.getProperty将始终返回null
我找到的唯一方法是通过
测试{
systemProperty“cassandra.ip”,“192.168.33.13”
}
我如何通过-D实现它
-p标志用于渐变属性,-D标志用于JVM属性。因为测试可能在一个新的JVM中分叉,所以传递给gradle的-D参数将不会传播到测试中-听起来这就是您看到的行为
您可以在test块中使用systemProperty,就像您所做的那样,但是通过将它与传入的gradle属性一起传递,它将基于传入的gradle属性-p:
测试{
systemProperty“cassandra.ip”,project.getProperty(“cassandra.ip”)
}
或者,如果您通过-D传递它
测试{
systemProperty“cassandra.ip”,System.getProperty(“cassandra.ip”)
}