Ich möchte einem bestehenden Java-Projekt Groovy-Unterstützung hinzufügen, damit ich gemischten Java- und Groovy-Code mit Hilfe von invokedynamic problemlos kompilieren kann, um Java-ähnliche Ausführungsgeschwindigkeit, ohne übermäßige Menge an Zeit mit ausführlicher Java-Syntax verschwenden zu müssen
Nachdem ich gelesen habe, dass das gmaven Plugin die Kompilierung nicht mehr unterstützt - und dass das Groovy Eclipse Compiler Plugin unterstützt noch nicht aufgerufenedynamic , ich fragte mich, warum sollte ich Maven weiter verwenden, wenn es Groovy-Code kompiliert, der unnötig langsam ist?
Folglich entschied ich, dass ich versuchen würde, Maven für Gradle zu verschrotten, damit ich schnelleren Code erhalten konnte, während ich auch einige Python-Deployment-Skripte auf Gradle-Tasks portieren konnte, um nur eine Codebasis zu benötigen.
Ich habe einige Bibliotheken in einem einfachen passwortgeschützten S3-Maven-Repository gespeichert (um Enterprise-Overkills wie Artefakte zu vermeiden). Nach einiger Grundlagenforschung habe ich festgestellt, dass Gradle keine Unterstützung für das Hinzufügen eines benutzerdefinierten Abhängigkeitsmanagements bietet, wie von diese Stack-Overloundefrage und diesen Supportforumsbeitrag .
Ich habe es geschafft, ein s3-Plugin für grddle zu finden - aber es geht nicht um das Management von Abhängigkeiten.
Wenn der ganze Punkt von Gradle flexibler sein soll als Maven und wenn der Hauptzweck eines Abhängigkeitsverwaltungs / Build-Systems darin besteht, Abhängigkeiten von einer Vielzahl von Quellen effektiv zu verwalten, dann scheint die fehlende Unterstützung für benutzerdefinierte Repositories ein Ein ziemlich signifikanter Designfehler, der alle Probleme, die ich mit Maven gemacht habe, im Vergleich dazu verblasst.
Es ist jedoch durchaus möglich, dass mir etwas fehlt, und ich habe bereits mehrere Stunden investiert, um Gradle zu lernen - also dachte ich, ich würde sehen, ob es ein vernünftiges Mittel gibt, das Abhängigkeitsmanagement für diese Abhängigkeiten zu emulieren, bis Gradle-Entwickler das beheben kritisches Problem. Ansonsten muss ich schlussfolgern, dass es besser ist, einfach Maven zu verwenden und langsameren Groovy-Code zu tolerieren, bis das Compiler-Plugin aufgerufenedynamic unterstützt.
Im Grunde brauche ich eine Lösung, die Folgendes tut:
Ich kann jedoch nichts in der Dokumentation finden, das mir einen Hinweis darauf geben könnte, wo ich anfangen soll:
Gradle 2.4 bietet native Unterstützung für S3-Repositories . Sowohl das Herunterladen von Abhängigkeiten als auch das Veröffentlichen von Artefakten.
Zum Herunterladen mit IAM-Anmeldeinformationen (umschrieben vom obigen Link):
%Vor%Geben Sie dann Ihre Abhängigkeiten wie üblich an.
Sie benötigen keine benutzerdefinierte Repository-Unterstützung, damit dies funktioniert. Deklarieren Sie einfach ein maven
-Repository mit der richtigen URL. Wenn das Repository funktioniert, wenn es von Maven verwendet wird, funktioniert es auch mit Gradle. (Das Hochladen kann eine andere Sache sein.)
Tags und Links gradle amazon-s3 groovy build.gradle dependency-management