Comment passer des arguments de ligne de commande pour gradle

Je suis en train de passer un argument de ligne de commande pour une classe java. J'ai suivi ce post: http://gradle.1045684.n5.nabble.com/Gradle-application-plugin-question-td5539555.html mais le code ne fonctionne pas pour moi (c'est peut-être pas fait pour JavaExec?). Voici ce que j'ai essayé:

task listTests(type:JavaExec){
    main = "util.TestGroupScanner"
    classpath = sourceSets.util.runtimeClasspath
    //this works...
    args 'demo'
    /*
    //this does not work!
    if (project.hasProperty("group")){
        args group
    }
    */
}

La sortie de la ci-dessus codé en dur args valeur est:

C:\ws\svn\sqe\sandbox\selenium2forbg\testgradle>g listTests
:compileUtilJava UP-TO-DATE
:processUtilResources UP-TO-DATE
:utilClasses UP-TO-DATE
:listTests
Received argument: demo

BUILD SUCCESSFUL

Total time: 13.422 secs

Cependant, une fois que j'ai modifier le code pour utiliser le hasProperty section et passer en mode "démo" comme un argument sur la ligne de commande, je reçois un NullPointerException:

C:\ws\svn\sqe\sandbox\selenium2forbg\testgradle>g listTests -Pgroup=demo -s

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\ws\svn\sqe\sandbox\selenium2forbg\testgradle\build.gradle' line:25

* What went wrong:
A problem occurred evaluating root project 'testgradle'.
> java.lang.NullPointerException (no error message)

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project
 'testgradle'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:127)
    at org.gradle.configuration.BuildScriptProcessor.evaluate(BuildScriptProcessor.java:38) 

Il existe un test simple du projet disponible à http://gradle.1045684.n5.nabble.com/file/n5709919/testgradle.zip qui illustre bien le problème.

C'est à l'aide de Gradle 1.0-rc-3. Le NullPointer est à partir de cette ligne de code:

args group 

J'ai ajouté la tâche avant de la définition de tâche, mais il n'a pas changé le résultat:

group = hasProperty('group') ? group : 'nosuchgroup' 

Tous les pointeurs sur comment passer des arguments de ligne de commande pour gradle apprécié.

InformationsquelleAutor Lidia | 2012-07-27