2016-02-23 22 views

Antwort

1

Die Antwort ist ja, aber Sie müssen das neue Gradle-Softwaremodell verwenden, das sehr viel Inkubator ist. Es wird ein Weg voller Schmerzen sein, da du ein Trailblazer sein wirst, wie ich es für ein C/Cpp-Projekt gelernt habe. Hier sehen Sie im Allgemeinen, wie Ihr Build aussehen wird.

plugins { 
    id 'jvm-component' 
    id 'java-lang' 
} 

model { 
    buildTypes { 
    debug 
    release 
    } 
    flavors { 
    free 
    paid 
    } 
    components { 
     server(JvmLibrarySpec) { 
      sources { 
       java { 
        if (flavor == flavors.paid) { 
        // do something to your sources 
        } 
        if (builtType == buildTypes.debug) { 
        // do something for debuging 
        } 
        dependencies { 
         library 'core' 
        } 
       } 
      } 
     } 

     core(JvmLibrarySpec) { 
      dependencies { 
       library 'commons' 
      } 
     } 

     commons(JvmLibrarySpec) { 
      api { 
       dependencies { 
        library 'collections' 
       } 
      } 
     } 

     collections(JvmLibrarySpec) 
    } 
} 

Referenzen: 1) Java Software Modell https://docs.gradle.org/current/userguide/java_software.html 2) Flavors https://docs.gradle.org/current/userguide/native_software.html Anmerkung: Ich bin nicht sicher, wie gut Aromen der Java Software Modell, unterstützt werden, ich werde einige Tests machen und berichten.

Update: Es ist möglich, wird aber derzeit nicht von der JvmLibrarySpec unterstützt. Ich werde versuchen, eine vollständigere Antwort mit einem Beispiel zu posten, wie man die kundenspezifische Spezifikation macht.

+0

Ich konnte keine Referenzen zu Aromen in dem verknüpften Dokument finden. – RaGe

+0

@RaGe Ich aktualisierte die Referenzen. Ich muss etwas überprüfen, um sicherzustellen, dass es wie angegeben funktioniert. Ich arbeite mit dem Softwaremodell ausschließlich in c/cpp und nicht in unseren Android/Java-Projekten. Lass mich einen Test machen und ich melde mich zurück. –

+0

@RaGe es ist möglich, wird aber derzeit nicht von der JvmLibrarySpec unterstützt. Um dies zu tun, müssen Sie Ihre eigene Spezifikation erstellen. Ich werde versuchen, morgen ein Beispiel zu veröffentlichen. –

Verwandte Themen