2017-11-27 3 views
-1

Ich habe folgende Projektstruktur:Wie Modul als Abhängigkeit enthalten und in der Lage sein, es zu APK zu bauen?

main-project/ 
    modules/ 
    moduleA/ 
    moduleB/ 

main-project verwendet moduleA und moduleB als Abhängigkeiten. Derzeit sind diese Module Bibliotheksmodule, die ich jedoch gerne als eigenständige Anwendungen veröffentlichen würde. So möchte ich in der Lage sein, zu lösen:

  • main-project Anwendung (abhängig von moduleA und moduleB)
  • moduleA eigenständige Anwendung
  • moduleB eigenständige Anwendung

Es gibt mehr Submodule als nur moduleA und moduleB, daher ist das Erstellen von Anwendungsmodulen für jede von ihnen keine Option (es sei denn, es ist möglich, sie durch Gradle zu automatisieren).

Gibt es eine Möglichkeit, Gradel zu verwenden, main-project und seine Abhängigkeiten als separate APKs zu erstellen?

EDIT

besser mein Problem zu veranschaulichen, hier ist weniger abstrakt Beispiel meiner Projektstruktur:

cats-dogs-browser/ 
    modules/ 
    cats-browser/ 
    dogs-browser/ 

Ich möchte cats-dogs-browser, cats-browser, dogs-browser APKs lösen. Sowohl cats-browser als auch dogs-browser können als eigenständige Anwendungen arbeiten (sie haben eigene Ressourcen, Aktivitäten usw.). Das Verwenden von Flavors in cats-dogs-browser, um nur eines der Module einzuschließen, ist keine Option, da es eine Menge Logik enthält, die für cats-browser und dogs-browser nicht benötigt wird.

Ich weiß, ich kann es durch die Bereitstellung von Anwendungsmodulen für cats-browser und dogs-browser (oder mit einem solchen Modul mit Aromen), aber im realen Projekt gibt es viel mehr als 2 solche Module, so dass ich nach einer besseren Lösung suche.

Antwort

0

Haben Sie versucht, einen anderen productFlavor mit Ihrer Modul-ID hinzuzufügen?

Weiß nicht, wenn es genau das ist, was Sie wollen.

Ich kann 2 verschiedene Anwendungen erstellen, den Code mit der folgenden gradle Konfiguration teilen Teil:

flavorDimensions "Applications" 

productFlavors { 
    Application1{ 
     dimension "Applications" 
     applicationId "com.example.app1" 
     versionCode 1 
     versionName "1.0.0" 
    } 
    Application2 { 
     dimension "Applications" 
     applicationId "com.example.app2" 
     versionCode 1 
     versionName "1.0.0" 
    } 
} 
+0

Soweit ich weiß, wird dies nur hinzufügen ': your_module_name' als Abhängigkeit in meinem Hauptmodul. Was noch wichtiger ist: ': your_module_name' ist immer noch ein Bibliotheksmodul, daher wird es nach AAR anstatt nach APK kompiliert. Dies ist keine Lösung für mein Problem, denn ich möchte ': your_module_name' als Teil des Hauptmoduls aber auch als eigenständige APK kompilieren können. – dzielins42

+0

Ich habe die Antwort bearbeitet ... Ich bin mir nicht ganz sicher, ob Ihnen das weiterhelfen kann. –

+0

Ich habe auch meine Frage bearbeitet, um ein konkreteres Beispiel zu geben. Ich habe überlegt, Aromen zu verwenden, aber jeder Geschmack muss manuell hinzugefügt werden, um build.gradle zu erstellen. – dzielins42

Verwandte Themen