787 votes

Lorsque maven dit: "la résolution ne sera pas reattempted jusqu'à ce que l'intervalle de mise à jour de MyRepo s'est écoulé", où est que l'intervalle de temps spécifié?

Je suis assez nouveau à maven. Ont fait des expériences avec la Nexus et Artifactory pour la maison artefact repos.

Avec deux d'entre eux, il m'arrive de frapper un artefact qui vient d'une 3e partie de pensions de titres que je n'ai pas encore configuré. Donc, je vais obtenir un message d'erreur de maven client en disant qu'un objet ne peut pas être trouvé. Je vais aller dans le Nexus/Artifactory de l'INTERFACE utilisateur et configurer le Virtuel/Proxy pensions dont j'ai besoin. Pas de problème.

Puis, de retour sur ma machine locale, je vais courir le maven client (sans l'option-U) et obtenir quelque chose comme ceci:

L'échec de la recherche org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 en http://myrepo:80/artifactory/repo a été mis en cache dans le local référentiel, la résolution ne sera pas reattempted jusqu'à ce que la mise à jour intervalle de MyRepo s'est écoulé ou les mises à jour sont forcé -> [Aide 1]

Maintenant, je comprends ce que cela signifie, et peut tout simplement ré-exécution de ma commande avec -U, et les choses sont en général bien fonctionner. Cependant, je trouve ce message d'erreur extrêmement peu intuitive et essaie de ménager mes co-travailleurs, des maux de tête. Donc j'ai farfouillé à essayer de comprendre si il ya un endroit que je peux modifier cette update interval réglage. J'ai essayé différentes instances de l' updatePolicy balise dans mon settings.xml le fichier, ainsi que d'expérimenter avec plusieurs de la cache period paramètres dans Artifactory et Nexus. Rien ne semble faire aucune différence. Pas choquant car cela ne semble pas exactement liée à ce que l' updatePolicy paramètre semble être, et pour nexus/artifactory, je devine que leur cache timeout paramètres sont plus de la façon dont ils les défauts de cache entre eux-mêmes et à distance de la 3e partie des dépôts.

Donc, je suppose que ce sont mes questions:

  1. Est l' update interval qui est mentionné dans ce message d'erreur côté client ou côté serveur?
  2. Si côté client, comment puis-je le configurer?
  3. Si côté serveur, personne ne sait comment/si Nexus/Artifactory exposer ces paramètres?

378voto

Christian Achilli Points 1271

Je l'ai utiliser pour résoudre ce problème en supprimant le correspondant échec du téléchargement du répertoire des artefacts dans mon local repo. La prochaine fois que je lance la commande maven l'artefact de téléchargement est déclenché à nouveau. Donc je dirais que c'est un client de réglage latéral.

Nexus côté (serveur de pensions de côté), ce problème est résolu de la configuration d'une tâche planifiée. Côté Client, cela se fait à l'aide d'-U, comme vous l'a déjà souligné.

147voto

kds Points 3749

Comme indiqué dans les commentaires ci-dessus utilisez simplement l' -U dans le but. Il va faire le travail. Cela fonctionne avec maven 3. Donc pas besoin de revenir à maven 2.

71voto

MrDrews Points 962

J'ai eu un problème connexe, mais Raghuram la réponse de l'aidé. (Je n'ai pas assez de réputation encore à voter sa réponse). Je suis l'aide de Maven livré avec NetBeans, et a été la même chose "...a été mis en cache dans le référentiel local, la résolution ne sera pas reattempted jusqu'à ce que l'intervalle de mise à jour des nexus a écoulé ou les mises à jour sont forcé -> [Aide 1]" erreur.

Pour corriger cela, j'ai ajouté toujours à mon fichier de paramètres (C:\Program Files\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>

49voto

Raghuram Points 26896

Comme spécifié dans les paramètres de référence, je suppose que ce que vous avez besoin est de changer la valeur par défaut de updatePolicy dans Maven Paramètres, c'est - daily. Je ne sais pas si cela s'applique à l'échec d'un téléchargement. Aussi, always est ok pour snapshots pas pour releases.

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

8voto

ashoka Points 177

Si vous utilisez Eclipse, puis aller pour Windows -> Préférences -> Maven et décochez la case "Ne pas mettre à jour automatiquement les dépendances à partir des dépôts distants" case à cocher.

Cela fonctionne avec Maven 3.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X