2016-04-26 13 views
1

Ich habe ein Android-Bibliotheksprojekt, das eine automatisch generierte Klasse benötigt. Diese Klasse wird während der Erstellung mit einem Groovy-Skript generiert, das im Verzeichnis buildSrc des Bibliotheksprojekts abgelegt ist. Dies funktioniert von selbst.Gradle buildSrc Abhängigkeit im sekundären Modul

Dann habe ich ein App-Projekt, das diese Bibliothek verwendet, also öffne ich Android Studio mit zwei Modulen: die App und die Bibliothek. In diesem Fall kann die Bibliothek build.gradle die Groovy-Klasse im Verzeichnis buildSrc nicht finden.

Hier ist meine aktuelle Verzeichnisstruktur.

|-- app-module (main module) 
    |-- /* application code and resources */ 
    |-- build.gradle 
|-- library-module 
    |-- buildSrc 
     |-- CodeGenerator.groovy /* within its package */ 
     |-- build.gradle 
    |-- build.gradle /* depends on CodeGenerator.groovy */ 

Der einzige Weg, die ich für diese zu arbeiten, gefunden ist, die gesamte buildSrc dir aus der Bibliothek in die App zu kopieren.

Gibt es eine andere Möglichkeit, die Groovy Build Abhängigkeit hinzuzufügen, ohne das gesamte Ding in das Hauptmodul zu kopieren?

+0

Ich habe ein ähnliches Problem, und ich habe eine öffentliche Github erstellt zu zeigen, wie es funktioniert nicht. Wenn Sie im Projekt 'myLib'' 'grdle build' 'erstellen, wird alles gelöscht, aber wenn Sie' grdle build' im root-Projekt ausführen, funktioniert es aus den oben beschriebenen Gründen nicht. Hilfe wäre willkommen! Sie können das Projekt über 'git clone prüfen https: // github.com/mikesol/cradle-multi-projekt-budersrc.git' – mikesol

Antwort

0

Haben Sie versucht, den Marker dependOn auf der Task "Gradle" zu verwenden?

task taskX << { 
    println 'taskX' 
} 

task taskY << { 
    println 'taskY' 
} 

taskX.dependsOn taskY 

Weitere Informationen finden Sie hier: https://docs.gradle.org/current/userguide/more_about_tasks.html Subchapter 17,4

+0

Es ist kein Problem mit der Aufgabe. Die Aufgaben werden ordnungsgemäß ausgeführt. Das Problem, das ich habe, tritt auf, wenn ich Android Studio als ein Multiprojekt öffne (eines ist die App, und eines ist die Bibliothek). Da das Verzeichnis buildSrc nur im Hauptmodul vorhanden sein kann (entsprechend der Dokumentation), kann die Bibliothek build.gradle die Abhängigkeit der Groovy-Klasse nicht finden (weil sie im Bibliotheksprojekt anstatt im App-Projekt platziert ist). – anavarroma

Verwandte Themen