Properties 在渐变生成脚本中使用系统属性

Properties 在渐变生成脚本中使用系统属性,properties,gradle,Properties,Gradle,这应该是最简单的问题,但我在从Gradle测试任务访问系统变量时遇到了问题。一定是有输入错误,因为我确信这个语法是正确的,但它不起作用。我希望有人能帮我找出下面这段代码的问题 // my gradle build says the following line is a deprecated method //systemProperties = System.getProperties() // this line always returns 1 on a multiprocess

这应该是最简单的问题,但我在从Gradle测试任务访问系统变量时遇到了问题。一定是有输入错误,因为我确信这个语法是正确的,但它不起作用。我希望有人能帮我找出下面这段代码的问题

// my gradle build says the following line is a deprecated method    
//systemProperties = System.getProperties()

// this line always returns 1 on a multiprocessor system
println 'NUMBER_OF_PROCESSORS is ' +
     System.getProperty( "NUMBER_OF_PROCESSORS", "1" )

// this line also always returns the default for TMP var
println 'TMP is ' + System.getProperty( "TMP", "C:\\Temp" )
注:我也问了,但由于这是一个封闭的线程,我不确定我是否会得到一个答案。另外,我也做了彻底的检查,但没有帮助

我尝试了这些,但也失败了:

test {
    println ""
    ENV = System.getProperties()
    println "TMP is " + ENV['TMP']
    println ""
}

task testa(Type:Test) { 
    println ""
    println "HOMEPATH = " + System.getProperty( "HOMEPATH", "defaultpath" )
    println "TMP = " + System.getProperty( "TMP", "defaulttmp" )
    println ""
}

task testb(Type:Test) {
    println ""
    println "HOMEPATH = " + System.properties['HOMEPATH']
    println "TMP = " + System.properties['TMP']
    println ""
}

task testc(Type:Test) {
    // pass a arg to this test like -PMYARG=anything
    println ""
    println "Parg = " + System.properties['MYARG']
    println ""
}

testWorks {
    println ""
    ENV['ok'] = "good to go"
    println "this test is " + ENV['ok']
    println ""
}

要使Gradle JVM的系统属性可用于测试,可以执行以下操作:

test {
    systemProperties = System.properties
}
或者,如果您已经声明了其他
测试
任务:

tasks.withType(Test) {
    systemProperties = System.properties
}

您是在尝试访问环境变量还是在尝试访问jvm系统属性?@erdi-jvm系统属性Peter似乎为您指出了正确的方向。我在我的项目中添加了一个“testd”(在我上面的问题中引用),但在添加该测试后,使用您的建议,它似乎不起作用。我得到了这个错误,我已经在我的问题中提到过:“不推荐的动态属性:“任务:testd”上的systemProperties”,值:“{java.vendor=Oracle Co…”。。。"。若要重现此错误,您可以从GitHub下载我的项目。它是
type:Test
,而不是
type:Test
。好的,我在GitHub上更改了我的项目,并使用了您的建议,但仍然无法使其正常工作。在启用您建议的行的那一刻,我在此处看到一个异常:。如果我对其中一行进行注释,它就可以正常工作。因此,我我仍然无法让它工作。对于这么简单的东西,应该不会这么困难。对于Maven,我没有这样的麻烦。
不推荐使用的动态属性:“systemProperties”
也不例外,这是一个弃用警告。它无论如何都能起作用。我仍然想知道它从何而来,用什么来代替……你的问题听起来不一样。弃用警告意味着在没有定义此类属性的对象上引入了
systemProperties
属性(而不是
Test
任务),但没有明确说明这是需要的(与配置现有属性相比)。这是构建代码中的一个错误,不会对测试产生任何影响。在Gradle 2.0(1.12之后的下一个版本)中,这将导致构建失败。