Angeben der Eigenschaften für eine gradle-build

Ich gebe zu, ich bin ganz neu mit gradle, aber ich hatte nicht erwartet, nicht imstande zu sein zu verstehen, etwas so einfaches wie das Beispiel unten. Ich kann Lesen, die gradle Dokumentation über die Prüfung, ob ein Projekt-Eigenschaft festgelegt worden sind oder nicht mit einem hasProperty(String propertyName) rufen, und ich Sitze hier und habe keine Ahnung, warum etwas so grundlegendes nicht funktioniert.

Ich glaube, mein Geist muss so viel "ant wie" orientiert, die für sicher, ich bin fehlt etwas gewöhnliches basic

task printSystem() << {
    println system
    println "has property: " + hasProperty("system")
}

und die Berufung, die Aufgabe, mit dem folgenden Befehl:

$gradle printSystem -Psystem=mySystem
mySystem
has property: null

Also meine Fragen wäre:

  1. Warum-system ausgedruckt wird, aber hasProperty zurück null?
  2. Wie soll ich überprüfen Sie für die Existenz der Projekt-Eigenschaft als "system"?
  3. Gibt es einen anderen Weg für die Erprobung für eine Projekt-Eigenschaft als Gegensatz zu ein-system-Eigenschaft?
  4. Wie würden Sie den pass ein-system-Eigenschaft von der Kommandozeile aus?

Dies ist aus der gradle Dokumentation und ich glaube, ich lese es Recht

19.2.1. Die Prüfung für die Projekt-Eigenschaften

Können Sie den Zugriff auf eine Projekt-Eigenschaft in Ihrem build-Skript einfach über den Namen, als würden Sie eine variable verwenden. Wenn diese Eigenschaft nicht vorhanden ist, wird eine Ausnahme geworfen und schlägt der build fehl. Wenn Ihr build-Skript setzt auf optionale Eigenschaften kann der Benutzer festlegen, vielleicht in einem gradle.properties-Datei, die Sie brauchen, um zu überprüfen, für die Existenz, bevor Sie auf Sie zugreifen. Sie können dies tun, indem Sie die Methode hasProperty('propertyName'), die true oder false zurückgibt.

  • Haben Sie gesehen, meine Antwort? Lösen bedeutet es er problem? Wenn dem so ist, bitte akzeptieren Sie es.
  • Ihre Antwort kam am Freitag Nachmittag, als ich war, genießen Ende der Woche trinken mit meinem Büro-Kollegen 🙂 getestet habe ich deine Lösung heute und es funktionierte. Ich wünschte, dass die Dokumentation klarer wäre sagen nur, indem project.hasProperty('propertyName') im Gegensatz zu dem, was es zeigt, jetzt. Auch, wenn etwas ist soll true oder false zurück und gibt einen null-stattdessen gibt es die Verwirrung. Ich danke Ihnen sehr.
InformationsquelleAutor Julian | 2015-06-26
Schreibe einen Kommentar