2012-10-05 2 views
7

Mein Team fängt gerade erst mit Maven in Java Projects an. Wir haben jetzt alle Projekte, die Maven verwenden, um Abhängigkeiten vom Internet zu bekommen, aber wir wollten ein Maven-Repository verwenden, um gemeinsam genutzte Java-Klassen zu teilen, die wir in Jars machen und verpacken.Einrichten des Maven Nexus Servers für das Team zum Teilen von hauseigenen Gläsern

Ich habe einen Maven Nexus Server eingerichtet und es sieht aus, als ob es als Proxy funktioniert. Der nächste Schritt besteht darin, eines der von uns erstellten JARs zu verwenden und es in das lokale Nexus Repo zu implementieren, damit jeder Entwickler es als Abhängigkeit teilen kann. Ich habe jedoch keine Ahnung, wo ich anfangen soll.

Wenn ich eine mvn installiere, setzt es Code in lokalen (Mein PC) Repo, was nicht das ist, wonach ich suche. Ich möchte es auf dem Nexus Repo installieren, damit jeder in meinem Team darauf zugreifen kann. Bitte hilf mir.

Antwort

3

Sie wissen wahrscheinlich ein wenig darüber, aber here is a high-level overview (for others) about setting up a Maven repository.

Sobald Sie ein Repository haben, müssen Sie zurück zu jedem der abhängigen Projekte (oder wenn sie einen Master-Pom teilen) und definieren Sie das Repository, damit es zu den Quell-Repositories, die für die gezogen werden baut.

Ich habe Apache's Archiva mit guten Ergebnissen verwendet, und es unterstützt einen "Caching-Proxy" für Maven Projektanfragen, so dass es binäre Artefakte von Upstream-Repositories herunterladen und sammeln, wenn es das Binärartefakt selbst nicht bedienen kann. Das heißt, die Dokumentation könnte ein bisschen besser sein. Es gibt andere Produkte, wie Artifactory, die gut angesehen werden. Vielleicht möchten Sie es als einen Kandidaten für die Bewertung betrachten.

Ihre Builds benötigen kein Repository-Management-System, da alle SSH-Server mit der richtigen Verzeichnisstruktur ausreichen; Ein solches System kann Ihnen jedoch das Leben durch automatisches Caching in Verbindung mit Proxy-Anfragen erleichtern, indem es den Benutzerzugriff verwaltet, mehrere Repositorys strukturiert und verwaltet (Entwicklung/QA-Release/Allgemeine Verfügbarkeit) und ungewöhnliche Berichte ausführt, die die Verwaltung ermöglichen einfacher (wenn Sie sie verwenden).

Soweit tatsächlich einen solchen Server verwenden, gibt es zwei "Teile" von Ihrem Pom müssen Sie ändern, und eine (möglicherweise) zusätzliche Datei, die Sie hinzufügen müssen.

  1. Sie Ihr Projekt <Repositories> Abschnitt aus den Repositories ziehen müssen neu konfiguriert werden.
  2. Sie müssen den Abschnitt <distributionManagement> Ihres Projekts für die Bereitstellung in den neuen Repositorys neu konfigurieren.
  3. Sie müssen eine Datei "settings.xml" ändern oder erstellen, um die Anmeldeinformationen für den Zugriff auf das Repository zu speichern.

Darüber hinaus wird es eine Frage des Stils. Ich empfehle, die Snapshots von den "Releases" zu trennen, indem zwei Repositories eingerichtet werden. Auf diese Weise können Sie ältere Dateien häufig aus den Snapshot-Repositorys löschen, ohne dass die seit langem benötigten Release-Versionen gefährdet sind.

Dann müssen Sie entscheiden, ob Sie alle für den Build intern notwendigen Elemente zwischenspeichern werden.Wenn dies der Fall ist, müssen Sie die Projekte neu konfigurieren, um nicht von "externen" Repositorys zu profitieren, und die fehlenden Artefakte in das richtige Verzeichnis in Ihrem Repository herunterladen. Die Funktion "automatischer Proxy-Cache" vieler Repository-Management-Produkte erfüllt genau dies.

Dann müssen Sie entscheiden, ob Sie alle Plug-Ins für die maven-System in-house zwischenspeichern werden. Wenn ja, benötigen Sie eine pluginRepository und wenn Sie jemals ein benutzerdefiniertes Plugin bereitstellen möchten, ein pluginSnapshotRepository. Ja, es klingt nach viel, aber es ist nur ein kleines bisschen mehr Arbeit, um vier dieser Repositories zur gleichen Zeit zu tun, wie es wäre, eins zu tun.

Viel Glück!

Verwandte Themen