Ich gebe zu, ich bin ziemlich neu zu groß, aber ich habe nicht erwartet, etwas so einfach wie das Beispiel unten zu verstehen. Ich kann die grddle Dokumentation über das Überprüfen lesen, ob eine Projekteigenschaft eingestellt worden ist oder nicht, die einen hasProperty (Schnur propertyName) Anruf verwenden und ich sitze hier und habe keine Idee, warum etwas so grundlegendes nicht funktioniert.Übergeben von Eigenschaften zu einer Gradel bauen
Ich glaube, mein Geist so viel sein muss „ant wie“ ausgerichtet, dass für sicher, ob ich etwas gewöhnlichen Grund mit dem Befehl
task printSystem() << {
println system
println "has property: " + hasProperty("system")
}
und Aufrufe diese Aufgabe unten bin fehle:
$gradle printSystem -Psystem=mySystem
mySystem
has property: null
So meine Fragen wären:
- Warum System ausgedruckt wird, aber hasProperty gibtzurück?
- Wie sollte ich nach der Existenz der Projekteigenschaft "System" suchen?
- Gibt es eine andere Möglichkeit, eine Projekteigenschaft als eine Systemeigenschaft zu testen?
- Wie würden Sie eine Systemeigenschaft von der Befehlszeile übergeben?
Dies ist aus, die gradle Dokumentation und ich glaube, ich es richtig
19.2.1 lese. Überprüfen der Projekteigenschaften
Sie können auf eine Projekteigenschaft in Ihrem Buildskript zugreifen, indem Sie einfach ihren Namen verwenden, wie Sie eine Variable verwenden würden. Wenn diese Eigenschaft nicht vorhanden ist, wird eine Ausnahme ausgelöst und der Build schlägt fehl. Wenn Ihr Build-Skript auf optionalen Eigenschaften basiert, die der Benutzer möglicherweise festgelegt hat, müssen Sie möglicherweise in einer Datei "gradle.properties" prüfen, ob es existiert, bevor Sie darauf zugreifen. Sie können dies tun, indem Sie die Methode hasProperty ('propertyName') verwenden, die true oder false zurückgibt.
Haben Sie meine Antwort gesehen? Löst es das Problem? Wenn ja, bitte akzeptiere es. – Opal
Ihre Antwort kam an einem Freitagnachmittag, als ich mit meinen Bürokollegen am Ende der Woche einen Drink genoss :-) Ich habe heute Ihre Lösung getestet und es hat funktioniert. Ich wünschte, die Dokumentation würde klarer sein, sagen wir nur, indem wir "Projekt" setzen.hasProperty ('propertyName') 'im Gegensatz zu dem, was es jetzt zeigt. Auch wenn etwas Wahr oder Falsch zurückgeben soll und stattdessen eine Null zurückgibt, trägt das zur Verwirrung bei. Vielen Dank. – Julian