Dienstprogramm für die ohne MVN / Poms Artefakte aus Maven Repo-Download [geschlossen]
-
23-08-2019 - |
Frage
Gibt es einen Maven-Client, der nicht MVN ist (die Binärdatei mit der Maven-Distribution enthält) konnte ich einen Artefakt aus einem Maven-Repository herunterzuziehen benutzen, ohne einen pom zu verwenden? Ich möchte ein Maven-Repository als Repo verwenden für unsere ops Team baut abholen (einschließlich Snapshots Ich Builds), will aber nicht sie um in ihnen mit dem Schreiben Poms und erklären Abhängigkeiten zu verwirren zu lassen. Im Idealfall, ich suche nur für einen cli-Client, die ich gerade in einer Repo-URL und Koordinaten und downloaden Sie einen bestimmten Artefakt passieren könnte. Ist so etwas existieren, oder bin ich besser dran, das Schreiben eines Einmal Skript für das?
Lösung
Mit Nexus. Es bietet eine Web-Schnittstelle, die anderen Teams verwenden können Artefakte zum Download bereit. http://nexus.sonatype.org/
Andere Tipps
Ich sehe drei einfache Optionen:
- Senden Sie einfach ihnen einen Link zeigt auf Ihrem Artefakt in Ihrem Repository und haben sie ihren Browser verwenden.
- Installieren und verwenden
wget
(wget http://path/to/artifact.extension
). - Installieren und verwenden Sie
mvn dependency:get
(erfordertmvn
aber nicht einpom.xml
benötigen, finden Sie unter diese Antwort für weitere Details).
Mit dem Maven Embedder . Mehr zu dem Punkt, für die Lösung und das Herunterladen von Gläsern, die Funktionalität innerhalb des Maven Embedder verwenden. Obwohl, wenn Sie versuchen, nur eine einfache CLI zu schreiben, ist die Repository-Struktur nicht komplex und man konnte leicht ein Skript schreiben, die eine Maven-Repo-URL, Artefakt-ID nimmt, Gruppen-ID und Version zu erzeugen, um die vollständige URL in das Gefäß.
Dies ist, wie wir es in jcabi-Äther :
final File repo = this.session.getLocalRepository().getBasedir();
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
JavaScopes.RUNTIME
);
Alles, was Sie zu diesem lib zur Verfügung stellen müssen 1) eine Liste des Remote-Repositories, 2) Standort eines lokalen Repo und 3) Maven Koordinaten des Artefakts. Die Bibliothek verwendet Apache Äther von Sonatype.
Nun technisch wird das Repository über HTTP zugegriffen wird, so dass die Repository-Position gegeben, Artefakt und Koordinaten, es sollte nur möglich sein, Ihre ops eine URL-Team das Artefakt zu geben, dass sie in jedem Browser schlagen können.
Denken Sie über Pax URL , die Sie Maven Artefakte verweisen verwenden Ebene URLs können wie folgt:
mvn:groupId/artifactId/version
Siehe PAX Website URL für weitere Informationen (MVN Protocol Handler).
Toni