Ist es möglich, Build-Varianten basierend auf verschiedenen Source-Sets für eine traditionelle Java-App (kein Android-Projekt) intellij?
zu habenIch würde gerne eine Funktion wie productFlavors verwenden, die mit dem Android-Gradle-Plugin geliefert wird, aber für eine traditionelle Java-Anwendung.
Beispiel:
%Vor%Die Antwort ist ja, aber Sie müssen das neue Gradle-Softwaremodell verwenden, das sehr viel in sich trägt. Es wird ein Weg voller Schmerzen sein, da du ein Trailblazer sein wirst, wie ich es für ein C / Cpp-Projekt gelernt habe. Im Allgemeinen sieht Ihr Build so aus.
%Vor%Referenz: Ссылка
Wir verwenden Gradel Multi-Module-Projekte für unser Variantensystem. Es gibt ein Kernprojekt, das den gemeinsamen Code enthält. Anpassungen werden einfach in Teilprojekten durchgeführt.
%Vor%Die Varianten-Teilprojekte hängen vom Kern ab und bilden jeweils einzelne .war-Dateien. Beachten Sie, dass wir in diesem Fall keine Klassen aus dem Kernprojekt überschreiben. Für Codeanpassungen verwenden wir Spring und in einigen Fällen SPI, aber ich denke, dass jedes Abhängigkeitsinjektions-Framework dies erreichen kann. Es zwingt Sie nur, explizite Erweiterungspunkte im Kern bereitzustellen, was ich für eine gute Sache halte.
Tags und Links java gradle intellij-idea build.gradle