Optionale Gradle-Eigenschaften

8

Ich habe eine Gradle-Build-Datei, in der sich eine der Aufgaben in docker einloggt. In dieser Aufgabe möchte ich, dass der Benutzer / CI die Parameter docker_username, docker_password und docker_email bereitstellt.

%Vor%

Die Ausführung von gradle loginDockerHub -Pdocker_username=vad1mo ... funktioniert wie erwartet.

Aber wenn ich zum Beispiel gradle build führe, bekomme ich den Fehler:

  

Die Eigenschaft 'docker_username' für Task ': loginDockerHub' konnte nicht gefunden werden.

Ich würde diesen Fehler bei der Ausführung von gradle loginDockerHub erwarten, ohne den Parameter -P anzugeben, aber nicht bei anderen Tasks, die nicht auf die Parameter docker_username / password zugreifen.

Wie kann ich optionale Parameter für meine loginDockerHub Aufgabe in Gradle haben, die den Parameter für keine andere Aufgabe zwingend machen.

    
Vadimo 26.12.2014, 16:23
quelle

3 Antworten

7

Sie können prüfen, ob die Eigenschaft existiert und wenn keine Standard zurückgegeben wird.

%Vor%

Update: Ab Gradle 2.13 können Sie das etwas vereinfachen.

%Vor%     
Mark Vieira 26.12.2014, 16:28
quelle
4

Ich konnte keine Lösung für das Problem finden. Diese Beschreibung enthielt einen Hinweis darauf, Aktionen innerhalb einer Aufgabe zu deklarieren. Das Shell-Exec in die Action-Task zu bringen, hat das Verhalten, das ich erwartet habe, weil Aktionen ausgewertet werden, wenn die Task ausgeführt wird.

%Vor%

Wenn loginDockerHub ausgeführt wird, ohne die Parameter docker_* anzugeben, wird ein Fehler ausgegeben. Die Ausführung einer anderen Aufgabe funktioniert wie erwartet.

    
Vadimo 27.12.2014 17:53
quelle
0

Ich musste dies tun und wollte nicht, dass mein Build mit einem Fehler fehlschlug. Ich habe es dadurch gelöst:

%Vor%

Sie könnten die erste Zeile erweitern, um nach docker_password, docker_email usw. zu suchen.

    
Ryan Shillington 27.01.2017 03:02
quelle

Tags und Links