web-dev-qa-db-fra.com

Les téléchargements Maven ont l'extension .lastUpdated

J'ai une configuration Eclipse avec m2Eclipse et subversive. J'ai importé un projet maven2 de svn. Mais je reçois le message d'erreur voulant qu'il manque un tas d'artefacts (par exemple: artefact manquant org.springframework: spring-test: jar: 3.0.1.RELEASE: test). 

Si je regarde dans mon référentiel, je vois les fichiers jar mais ils ont une extension supplémentaire .lastUpdated. Pourquoi maven ajoute-t-il .lastUpdated aux bocaux? Et plus important encore: comment puis-je résoudre ce problème? 

Il n'y a aucune mention du type lastUpdated dans mes POM. 

59
user303158

Ces fichiers indiquent à Maven qu'il a tenté d'obtenir l'archive par téléchargement, mais en vain. Afin d'économiser de la bande passante, il ne tentera pas cette opération jusqu'à ce qu'une certaine période de temps encodée dans le fichier se soit écoulée. Le commutateur de ligne de commande -U force maven à effectuer la mise à jour avant la période de nouvelle tentative. Cela peut être nécessaire si vous avez tenté de créer alors que vous êtes déconnecté du réseau.

La méthode de suppression des fichiers fonctionne avec la plupart des versions de maven, mais comme les fichiers sont des souvenirs internes à maven, je ne recommanderais pas cette méthode. Il n'y a aucune garantie que ces informations ne sont pas référencées ou conservées ailleurs et une telle manipulation peut endommager le système.

42
Jörn Guy Süß

Comme rperez dit, j’utilise pour supprimer tous ces fichiers .lastUpdated. Sous Linux, j'ai créé un petit script pour garder les choses simples:

find -name \*.lastUpdated -exec rm -fv {} +

Créez simplement un fichier avec le contenu précédent et placez-le sur votre référentiel Maven local. Ce sera généralement ~/.m2/repository.

10
Rubens Mariuzzo

J'ai installé Maven2 et ai exécuté mvn compile à partir de la ligne de commande. Cela semble avoir résolu le problème 

6
user303158

Si vous rencontrez ce problème et que vous utilisez Nexus, il se peut que vous ayez une règle de routage définie, qui est incorrecte. J'ai frappé moi-même et les fichiers téléchargés étaient correctement nommés, à la bonne adresse URL, mais ils portaient tous l'extension .lastUpdated et un message d'erreur comme contenu. 

2
carlspring

vous pourriez avoir un problème avec certains des artefacts à récupérer du référentiel. Par exemple, Spring Framework a son propre référentiel. cette extension est ajoutée lorsque l'artefact ne peut pas être entièrement téléchargé. ajoutez le référentiel Spring Framework à votre pom ou settings.xml, supprimez le dossier contenant les fichiers jar cassés et redémarrez

1
rperez

Ouvrez votre terminal, accédez au répertoire de projet de votre Eclipse et exécutez:

mvn install

Si mvn install ne met pas à jour vos dépendances, appelez-le avec un commutateur pour forcer la mise à jour:

mvn install -U

Cette approche est beaucoup plus sûre que de manipuler des fichiers maven lorsque vous supprimez ".lastUpdated".

0
Edward Quixote