826 Stimmen

Wenn maven sagt "Auflösung wird nicht erneut versucht, bis das Aktualisierungsintervall von MyRepo abgelaufen ist", wo ist dieses Intervall angegeben?

Mit Maven stoße ich gelegentlich auf ein Artefakt, das von einem Drittanbieter-Repository stammt, das ich noch nicht gebaut oder in mein Repository aufgenommen habe.

Ich erhalte eine Fehlermeldung vom Maven-Client, dass ein Artefakt nicht gefunden werden kann:

org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 wurde nicht gefunden in http://myrepo:80/artifactory/repo wurde im lokalen Cache Repository zwischengespeichert wurde, wird die Auflösung nicht erneut versucht, bis das Aktualisierungs Intervall von MyRepo verstrichen ist oder Aktualisierungen erzwungen werden -> [Hilfe 1]

Jetzt, I verstehen, was das bedeutet, und kann meinen Befehl einfach erneut ausführen mit -U und von da an funktioniert es normalerweise gut. .

Ich finde diese Fehlermeldung jedoch äußerst unintuitiv und versuche, meinen Mitarbeitern einige Kopfschmerzen zu ersparen.

Ich versuche herauszufinden, ob es eine Stelle gibt, an der ich das ändern kann update interval Umgebung.

  1. Ist die update interval die in dieser Fehlermeldung erwähnt wird, eine clientseitige oder eine serverseitige Einstellung?
  2. Wenn clientseitig, wie konfiguriere ich es?
  3. Wenn Server-seitig, weiß jemand, wie/ob Nexus/Artifactory diese Einstellungen offenlegen?

42 Stimmen

Ich erhielt die gleiche Fehlermeldung nach dem Hinzufügen von 1 weiteren Abhängigkeit zu meiner pom.xml. Für mich ist das eindeutig ein BUG. Ich verstehe nicht, warum das passiert! Wenn ich Abhängigkeiten zu meinem Projekt hinzufüge und mvn compile ausführe, dann sollte es einfach die Jar-Dateien herunterladen. Dieses Verhalten ist völlig unsinnig!

3 Stimmen

2 Stimmen

Ich habe erst kürzlich diese Erfahrung gemacht, und nach all den Antworten, die ich gelesen habe, ist ein weiterer zusätzlicher Schritt das Projekt erneut importieren in Eclipse (in meinem Fall). Es war zu seltsam, dass Eclipse mich ständig mit einem Plugin nervte, das nicht in meinem pom.xml .

52voto

Raghuram Punkte 50648

Entsprechend den Einstellungen Referenz :

updatePolicy: Dieses Element gibt an, wie oft versucht werden soll, Aktualisierungen vorzunehmen. Maven vergleicht den Zeitstempel des lokalen POMs (gespeichert in der maven-metadata Datei eines Repositorys) mit dem entfernten. Die Auswahlmöglichkeiten sind: immer, täglich (Standard), Intervall:X (wobei X eine ganze Zahl in Minuten ist) oder nie.

Ejemplo:

<profiles>
    <profile>
      ...
      <repositories>
        <repository>
          <id>myRepo</id>
          <name>My Repository</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
         </repository>
      </repositories>
      ...
    </profile>
  </profiles>
  ...
</settings>

8 Stimmen

Vielen Dank für die Antwort, aber ich habe viel mit der "updatePolicy"-Einstellung experimentiert, und sie scheint keine Auswirkungen auf den Fehler "Not Found" / "Failure Cached" / "resolution will not be reattempted" zu haben.

15voto

Pravin Bansal Punkte 3307

Dies funktioniert, nachdem Sie die entsprechende Abhängigkeit aus Ihrem lokalen Maven-Repository gelöscht haben

/user/.m2/repository/path

9voto

MattC Punkte 5409

Dieser Fehler kann manchmal irreführend sein. 2 Dinge, die Sie vielleicht überprüfen möchten:

  1. Gibt es ein aktuelles JAR für die Abhängigkeit im Repo? Ihre Fehlermeldung enthält eine URL, die angibt, wo gesucht wird. Gehen Sie also dorthin und suchen Sie dann den Ordner, der Ihrer Abhängigkeit entspricht. Gibt es ein JAR? Wenn nicht, müssen Sie Ihre Abhängigkeit ändern. (Sie könnten z. B. auf eine übergeordnete Abhängigkeit verweisen, obwohl Sie auf ein Unterprojekt verweisen sollten)

  2. Wenn das jar auf dem entfernten Repo existiert, dann löschen Sie einfach Ihre lokale Kopie. Es befindet sich in Ihrem Home-Verzeichnis (sofern Sie es nicht anders konfiguriert haben) unter .m2/repository (ls -a zum Anzeigen von versteckten Dateien unter Linux).

4 Stimmen

Dies ist für die Frage des Auftraggebers nicht relevant. Der Grund, warum der Fehler angezeigt wird, ist nicht der Punkt. Der Auftraggeber möchte wissen, wie er das Wiederholungsintervall einstellen kann.

1 Stimmen

Dies könnte ein implizites Problem hinter dem Beitrag des Autors sein und hat sich als mein Problem herausgestellt. Es stellte sich heraus, dass ich einen Tippfehler in meiner <groupId> hatte, was mich bei der Überprüfung von Option eins auf den richtigen Weg führte.

1 Stimmen

Die Frage ist, wie man das Intervall einstellt?

8voto

ashoka Punkte 633

Wenn Sie Eclipse verwenden, gehen Sie zu Windows -> Preferences -> Maven und deaktivieren Sie das Kontrollkästchen "Do not automatically update dependencies from remote repositories".

Dies funktioniert auch mit Maven 3.

1 Stimmen

Geprüft für: eclipse: Juno Service Release 2. m2e: v 1.3.1

9 Stimmen

Dies ist keine Antwort auf die Frage des Auftraggebers.

7voto

Riadh Punkte 852

Sie müssen alle "_maven.repositories" Dateien aus Ihrem Repository löschen.

3 Stimmen

Hilft nicht, zumindest nicht in meinem Fall

1 Stimmen

Bei mir hat es funktioniert. Ich habe allerdings nicht alle gelöscht, sondern nur die in diesem speziellen Abhängigkeitsordner

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X