setup - maven repository




Wenn maven sagt "Auflösung wird nicht wiederholt, bis das Aktualisierungsintervall von MyRepo abgelaufen ist", wo wird das Intervall angegeben? (10)

Überprüfen Sie die Spiegeleinstellung in settings.xml. Möglicherweise ist der Spiegelstandort weit entfernt von Ihrer Domain und nicht erreichbar. Versuchen Sie, Spiegel zu wählen, die näher an Ihrem Host liegen. Versuchen Sie, die folgenden Spiegel zu verwenden

 <mirror>
        <id>repo.exist.com</id>
        <url>http://repo.exist.com/maven2</url>
    </mirror>
    <mirror>
        <id>ibiblio.org</id>
        <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
    </mirror>
    <mirror>
        <id>ibiblio.net</id>
        <url>http://www.ibiblio.net/pub/packages/maven2</url>
    </mirror>
    <!--mirror>
        <id>mirror.netcologne.de</id>
        <url>http://mirror.netcologne.de/maven2</url> 
    </mirror -->
    <mirror>
        <id>uk.maven.org</id>
        <url>http://uk.maven.org/maven2</url>
    </mirror>

Mit Maven treffe ich gelegentlich ein Artefakt, das von einem Drittanbieter-Repo stammt, das ich noch nicht erstellt oder in mein Repository aufgenommen habe.

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

Wenn org.jfrog.maven.annomojo nicht gefunden wurde: maven-plugin-anno: jar: 1.4.0 in http://myrepo:80/artifactory/repo wurde im lokalen Repository zwischengespeichert, wird die Auflösung erst nach dem Aktualisierungsintervall erneut versucht von MyRepo ist abgelaufen oder Updates sind erzwungen -> [Hilfe 1]

Jetzt verstehe ich , was das bedeutet, und kann einfach meinen Befehl mit -U , und die Dinge funktionieren normalerweise gut von dort an .

Ich finde diese Fehlermeldung jedoch extrem unintelligent und versuche meinen Mitarbeitern Kopfschmerzen zu ersparen.

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

  1. Ist das update interval , das in dieser Fehlermeldung erwähnt wird, eine clientseitige oder serverseitige Einstellung?
  2. Wenn clientseitig, wie konfiguriere ich es?
  3. Wenn auf der Serverseite, weiß jemand, wie / wenn Nexus / Artifactory diese Einstellungen offen legt?

Dieser Fehler kann manchmal irreführend sein. 2 Dinge, die du überprüfen solltest:

  1. Gibt es eine tatsächliche JAR für die Abhängigkeit im Repo? Ihre Fehlermeldung enthält eine URL des Suchorts. Gehen Sie also dorthin und suchen Sie den Ordner, der Ihrer Abhängigkeit entspricht. Gibt es ein Glas? Wenn nicht, müssen Sie Ihre Abhängigkeit ändern. (Sie könnten beispielsweise auf eine Elternabhängigkeit auf oberster Ebene zeigen, wenn Sie auf ein Unterprojekt zeigen sollten.)

  2. Wenn das Jar auf dem Remote-Repo vorhanden ist, löschen Sie einfach Ihre lokale Kopie. Es befindet sich in Ihrem Home-Verzeichnis (außer Sie haben es anders konfiguriert) unter .m2 / repository (ls -a, um es unter Linux zu verstecken).


Etwas relevantes .. Ich bekam

"[FEHLER] Fehler beim Ausführen des Ziels im Projekt testproject: Abhängigkeiten für Projekt myjarname konnten nicht aufgelöst werden: jar: 1.0-0: Fehler beim Suchen von myjarname-core: bundle: 1.0-0 in http://repo1.maven.org/maven2 wurde im lokalen Repository zwischengespeichert, die Auflösung wird nicht wiederholt, bis das Aktualisierungsintervall von central abgelaufen ist oder Aktualisierungen erzwungen werden -> [Hilfe 1] "

Dieser Fehler wurde durch versehentliches Verwenden von Maven 3 anstelle von Maven 2 . Ich habe mir gedacht, dass es jemandem Zeit sparen könnte, denn meine erste Google-Suche führte mich auf diese Seite.


Gemäß der Einstellungsreferenz:

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

Beispiel:

<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>

Ich hatte ein verwandtes Problem, aber Raghurams Antwort half. (Ich habe noch nicht genug Ruf, um seine Antwort zu wählen). Ich benutze Maven gebündelt mit NetBeans, und bekam das gleiche "... wurde im lokalen Repository zwischengespeichert, Auflösung wird nicht wiederholt, bis das Update-Intervall von nexus abgelaufen ist oder Updates erzwungen werden -> [Hilfe 1]" Fehler .

Um das zu beheben, habe ich <updatePolicy>always</updatePolicy> in meine Einstellungsdatei hinzugefügt (C: \ Programme \ NetBeans 7.0 \ java \ maven \ conf \ settings.xml)

<profile>
  <id>nexus</id>
  <!--Enable snapshots for the built in central repo to direct -->
  <!--all requests to nexus via the mirror -->
  <repositories>
    <repository>
      <id>central</id>
      <url>http://central</url>
      <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
      <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
    </repository>
  </repositories>
 <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>http://central</url>
      <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
      <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
    </pluginRepository>
  </pluginRepositories>
</profile>

In Eclipse:

  • Klicken Sie mit der rechten Maustaste auf das Projekt -> Ausführen als -> Maven Build -> Ziel als "saubere Installation" angeben - >> Die benötigten Artefakte werden in das lokale Repository heruntergeladen.
  • - >> Wenn der Erfolg ERFOLGT !! -> Klicken Sie mit der rechten Maustaste auf Project-> Maven -> Projekt aktualisieren (check clean).

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


Was grundsätzlich passiert, ist laut default updatePolicy von maven.Maven wird die Gläser aus Repo auf täglicher Basis holen.So, wenn beim ersten Versuch Ihr Internet nicht funktionierte, dann würde es nicht versuchen, dieses Glas wieder bis 24 Stunden zu holen.

Auflösung :

Benutze entweder

mvn -U clean install

wo -U wird zwingen, das Repo zu aktualisieren

oder benutzen

<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>

in deiner settings.xml


Wenn Sie Nexus als Proxy-Repo verwenden, hat es die Einstellung "Not Found Cache TTL" mit dem Standardwert 1440 Minuten (oder 24 Stunden). Dies kann hilfreich sein (Repositories> Konfiguration> Ablaufeinstellungen).

Weitere Informationen finden Sie in der documentation .


Wie ich dieses Problem hatte,

Als ich von Eclipse Juno zu Luna wechselte und meine Maven-Projekte von SVN repo auscheckte, bekam ich dieselben Probleme beim Erstellen der Anwendungen.

Was ich versucht habe? Ich habe versucht, das lokale Repository zu bereinigen und dann alle Versionen mit der Option -U erneut zu aktualisieren. Aber mein Problem ging weiter.

Dann ging ich zu Fenster -> Einstellungen -> Maven -> Benutzereinstellungen -> und klickte auf die Schaltfläche Reindex unter Lokales Repository und wartete auf die Neuindizierung.

Das ist alles, das Problem ist gelöst.







artifactory