En essayant de comprendre les propriétés du projet gradle

Clairement je ne comprends pas ce qui se passe ici.

Je suppose que prop2 et prop3 ne peut pas être consulté car ils sont des variables au lieu de "propriétés du projet".

La question se pose car je voudrais les variables prop2 et prop3 être visibles à partir de l'intérieur de la "doTheThing()" la méthode, mais je ne veux pas avoir à les transmettre. Je veux que les variables qui doivent être accessibles dans le monde entier à des tâches, des méthodes et des classes (mais seulement à partir de l'intérieur dans le script lui-même) - et je tiens à être tapé (c'est pourquoi la définition de prop1 n'est pas acceptable).

Vraiment, bien que - je suppose que ce que je demande, c'est un peu d'aide pour comprendre un projet Gradle propriété, quelle est la syntaxe de " prop1 = "bla" est en train de faire.

J'ai lu le Gradle guide de l'utilisateur et également Gradle en Action - s'ils sont déjà expliquer ce concept, merci de m'indiquer la section de droite (peut-être que je passe à l'époque de ne pas comprendre ce qui se disait).

prop1 = "blah"
String prop2 = "bleah"
def prop3 = "blargh"

task testPropAccess << {
  println "1: $prop1"
  println "2: $prop2"
  println "3: $prop3"
  doTheThing()
}

private void doTheThing(){
  println "4: $prop1"
  println "5: $prop2"  //error: Could not find property 'prop2' on root project 'script'
  println "6: $prop3"  //error: Could not find property 'prop3' on root project 'script'
}
Cela devrait aussi aider: groovy.codehaus.org/Scoping+et+la+Sémantique+de+%22def%22
ce lien a été très utile, merci. Suppose que j'ai besoin de faire un peu plus Groovy, orientée vers la recherche.
Pour ceux qui cherchent à faire la même, ma solution actuelle pour obtenir la fonctionnalité que je veux c'est de définir mon build-script propriétés à l'échelle dans une classe comme ceci: class StaticProps { static String prop4 = System.getProperty("prop4", "wibble") } Et puis les utiliser comme ceci: System.getProperty("prop4", StaticProps.prop4)
Pourquoi System.getProperty() deux fois?
Copier-coller de l'erreur; doit être println $BuildProps.prop4

OriginalL'auteur Shorn | 2011-10-10