Gradle: Nur Abhängigkeiten für die gewünschte Variante auflösen

8

Ich habe eine Test-App mit drei Varianten:

  • dev: Verwendet während der Entwicklung eine lokale Kopie der Bibliothek
  • qa: Verwendet einen Snapshot während der QA
  • rc: Verwendet einen Prerelease-Build für den Test von Release-Kandidaten.
%Vor%

Ich führe Gradle, und erwarte, dass es die minimale Menge an Arbeit erledigt, die notwendig ist, um genau das zu bauen, was ich will:

%Vor%

Der Build schlägt jedoch fehl, da versucht wird, Abhängigkeiten für alle Build-Flavors aufzulösen, nicht nur für den Build, den ich gerade erstelle.

  

FAILURE: Build ist mit einer Ausnahme fehlgeschlagen.

     

* Was ist schiefgelaufen?

     

Beim Konfigurieren von Projekt ': Test-App' ist ein Problem aufgetreten.

     

Es konnten nicht alle Abhängigkeiten für die Konfiguration aufgelöst werden: test-app: _qaDebugCompile '.

     

Konnte com.beispiel nicht finden: library1.0.0-SNAPSHOT.

%Vor%

Der SNAPSHOT, den der qa -Geschmack zu lösen versucht, existiert noch nicht, und das sollte in Ordnung sein, weil ich nicht versuche, den qa -Geschmack aufzubauen. Wenn dieser SNAPSHOT-Build vorhanden ist, dann funktioniert alles gut.

Fragen:

  1. Warum haben alle Build-Varianten ihre Abhängigkeiten aufgelöst?
  2. Wie kann ich nur eine Geschmacksrichtung aufbauen, ohne dass dieses Problem auftritt?
  3. Gibt es einen besseren Weg dies zu tun, der mehr "Gradley" sein wird?
Sky Kelsey 14.02.2015, 21:41
quelle

2 Antworten

1

Ich habe das schließlich gelöst, indem ich die Liste der Aufgaben überprüft habe und ob es eine Aufgabe für die gewünschte Build-Variante gibt, indem ich die Abhängigkeit hinzufüge.

%Vor%

Beachten Sie, dass die Aufgabenliste keine abhängigen Aufgabennamen enthält. Wenn Sie also keine Aufgabe aufrufen, die Ihren Namen für die Erstellung enthält, funktioniert sie nicht. Das ist nur etwas, woran ich gearbeitet habe.

    
Sky Kelsey 12.06.2015, 19:51
quelle
0

Ich nehme an, dass der Build funktioniert, wenn Sie die Aufgabe manuell ausschließen?

%Vor%

Es sieht so aus, als ob die Aufgabe connectedAndroidTestDevDebug eine Abhängigkeit von der Aufgabe _qaDebugCompile hat, was zu Ihrem Problem führt. Ich weiß nicht, wie Ihre Aufgaben definiert sind, aber Sie können Ihre Abhängigkeiten mit den integrierten Aufgaben von Gradle gradle dependencies und gradle dependencyInsight untersuchen. Vielleicht gibt dir das einen Hinweis in die richtige Richtung:

%Vor%

Sie können mehr über Aufgabenabhängigkeiten in dem Benutzerhandbuch für Google-Nutzer .

    
Jolta 16.02.2015 17:17
quelle

Tags und Links