2016-12-02 2 views
2

Ich habe den folgenden Fall: - Maven-Projekt kompiliert fein auf einer Maschine, wo Artefakt A (Release eins) in diesem lokalen Maven-Repository der Maschine existiert, - Artefakt A wurde aus dem Remote-Repository entfernt.Wie aktualisiert Release-Artefakte in Maven?

Wie können wir sicher sein, dass das Projekt auf einer neuen Maschine funktioniert, auf der das lokale Maven-Repository leer ist?

+0

Wenn Sie auf einem Artefakt abhängen müssen sie in einer Remote-Repository sein, wenn Sie bauen von einem sauberen Schiefer. Warum hast du es entfernt und warum kannst du es nicht zurücklegen? – froderik

+0

Ich bin mir nicht sicher, ob ich Ihr Problem vollständig verstehe, aber: Wenn Sie eine Verbindung zu einem Remote-Repository mit Artefakt A herstellen, holt Maven es und legt es vor dem Build in das lokale Repository. Wenn Sie keine Remotequelle für Ihr Artefakt haben, können Sie es manuell im lokalen Repository Ihres Computers installieren. –

Antwort

0

versuchen, die Aufgabe installieren install-file das Glas in Ihrem lokalen Repo von Ihrer lokalen Festplatte zu setzen:

mvn install:install-file -Dfile=<path-to-file> 

maven.apache.org Details für mehr sehen.

0

Nur wenige Fälle:

  • Eins, wenn Sie artifact A besitzen und verwenden <repository> die Versionen synchron zu halten. Sie können Ihr Projekt auf dem neuen Computer jederzeit neu erstellen, um das Artefakt abzurufen.
  • Zweitens, wenn artifact A von Ihnen gehört und Sie bisher keine Repositorys verwendet haben, können Sie einfach die Version hochrüsten und auf dem Remote-Server (<repository>) bereitstellen und die neue Version auf der Maschine konsumieren, wo Sie möchten zu. Verwenden Sie <repositories> in Ihrem pom.xml den Remote-Pfad angeben wie folgt:

    <repository> 
        <id>clojars</id> 
        <name>Clojars Maven Repository</name> 
        <url>http://clojars.org/repo/</url> 
    </repository> 
    
  • Drittens, wenn Sie nicht die artifact A Sie besitzen, und es existiert in einem öffentlichen Maven zentralen Repositorys, alles, was Sie tun müssen, um wieder aufzubauen die richtige Abhängigkeit, um es über das Netz zu holen.

  • Im schlimmsten Fall ist der verwendete artifact A Ihr Eigentum und existiert nicht in einem öffentlichen zentralen Repository. Sie können die JAR-Datei immer noch kopieren und in einen beliebigen Modus kopieren und in das Gerät /m2/repository verschieben, wo Sie es benötigen. Aber notieren Sie in diesem Fall, dass Sie diesen Fall nie wieder erreichen sollten.

Auch im letzten Fall, können Sie es in Ihr Projekt kopieren und verwenden, wie von @ Adam vorgeschlagen

mvn install:install-file -Dfile=<path-to-file>