2016-10-10 3 views
2

In meinem Team entwickeln wir mehrere Anwendungen, die alle das gleiche Inhouse-Framework verwenden. Dieses Framework ist in viele Untermodule unterteilt, jedes mit einer eigenen Version, und jedes wird als Jar-zu-Artefaktory (Maven-Repository) veröffentlicht.Gradle: Brennen von aktuellen Abhängigkeiten Versionen in Release-Zweig

Wenn wir eine Anwendung freigeben, erstellen wir eine Verzweigung für sie und wir wollen diese Verzweigung gegen die neueste Version jedes Framework-Moduls kompilieren (das ist in Ordnung, weil wir in unseren nächtlichen Regressionen gegen den letzten Snapshot kompilieren). Wir verwenden Gradle, um dies zu erreichen, indem wir die Abhängigkeitsversion als "latest.release" setzen. Das funktioniert gut, bis wir einen Fehler in der Produktion beheben müssen - dann veröffentlichen wir einen Patch für die veröffentlichte Anwendung, indem wir den Versionszweig auschecken, den Fehler beheben, die App kompilieren, validieren und packen.

Problem: Die letzte Version verweist nun auf eine andere Version als die, für die wir ursprünglich kompiliert haben.

Was ich will: bei der Veröffentlichung der App, brennen Sie alle aufgelösten Versionen (die aufgelösten neuesten.Release) auf dem Build.gradle (oder in einer anderen Datei), so wenn ich es in Zukunft kompilieren werde ich gegen kompilieren die alten Releases.

Ich gehe davon aus, dass viele Entwickler dieses Problem haben, aber ich habe online keine Lösung dafür gefunden. Ich habe nie Maven benutzt, aber während ich nach einer Lösung suchte, entdeckte ich, dass es ein Plugin in maven, release plugin gibt, das genau das tut, was ich brauche.

Ich würde gerne wissen, ob Sie eine Lösung für dieses Problem haben.

+1

Netflix ein Plugin hat, das dies tut: https://github.com/nebula-plugins/gradle-dependency-lock-plugin – RaGe

+0

@RaGe sieht vielversprechend aus! werde das überprüfen. Vielen Dank. – ItamarBe

+0

@RaGe das ist genau das, was ich brauchte! Vielen Dank – ItamarBe

Antwort

Verwandte Themen