Ich möchte eine Java-Bibliothek für verschiedene Kunden mit Gradle erstellen. Gibt es so etwas wie Produktaromen, die von android in "pure" gradle bekannt sind?Gradle Produkt Geschmack in "pure" Gradle (nicht android Gradle)
Danke.
Ich möchte eine Java-Bibliothek für verschiedene Kunden mit Gradle erstellen. Gibt es so etwas wie Produktaromen, die von android in "pure" gradle bekannt sind?Gradle Produkt Geschmack in "pure" Gradle (nicht android Gradle)
Danke.
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.
Ich konnte keine Referenzen zu Aromen in dem verknüpften Dokument finden. – RaGe
@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. –
@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. –