Maven: échec de la lecture du descripteur d'artefact

j'espère que quelqu'un peut m'aider avec un problème avec lequel je lutte.

Quand j'essaie de construire mon projet dans le terminal, j'obtiens cette erreur:

Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT

le common.test-data-utils jar est créé par un projet séparé et partagé entre ce projet et un autre (l'autre projet ne construit pas non plus, mais il s'agit d'un autre problème).

je suis capable de construire com.morrislgn.merchandising.common:test-data-utils sans problème, je peux voir l'entrée il fait dans le .m2 référentiel local sur ma machine. J'ai aussi réindexé mon dépôt dans Eclipse.

le POM de mon projet a cette entrée:

<dependency>
    <groupId>com.morrislgn.merchandising.common</groupId>
    <artifactId>test-data-utils</artifactId>
    <version>0.3b-SNAPSHOT</version>
</dependency>

ce qui me semble correct - la POM ne signale pas non plus d'erreurs lorsqu'elle est visualisée dans Eclipse.

Quelqu'un peut-il me dire ce que je manque ici ou ce que je fais de mal?

177
demandé sur tharindu_DG 2011-07-10 20:06:34

23 réponses

vous pouvez toujours essayer mvn -U clean install

-U force une vérification des mises à jour des versions et des instantanés sur les dépôts à distance

120
répondu Gal Bracha 2015-10-09 21:59:03

ce problème peut se produire si vous avez des projets enfants qui se réfèrent à un parent pom et que vous n'avez pas installé à partir du répertoire parent pom (exécuter mvn install à partir du répertoire parent). Un des projets enfant peut dépendre d'un projet frère et quand il va à lire le pom du frère, il échouera avec l'erreur mentionnée dans la question à moins que vous n'ayez installé à partir du répertoire parent pom au moins une fois.

j'ai rencontré ce problème quand déplacer un projet vers un nouvel ordinateur. J'avais l'habitude de lancer des commandes depuis le projet enfant et je n'ai pas lancé l'installation sur le parent.

100
répondu bzuillsmith 2016-05-03 00:43:28

avait le même problème avec IntelliJ idée et suivant travaillé.

  • passer à File
  • sélectionner Settings
  • sélectionner Build, Execution, Deployments
  • sélectionner Build Tools de la liste déroulante
  • sélectionner Maven de la liste déroulante
  • cocher la case Always update snapshots 1519100920"

screen shot of IntelliJ 2017.2  Preferences/Settings  Build, Execution, Deployment  Build Tools  Maven  Always update snapshots (checkbox)

44
répondu prime 2017-10-24 20:00:42

si vous utilisez eclipse, clic droit sur le Projet -> Propriétés - > Maven et assurez-vous que le" résoudre les dépendances des projets d'espace de travail " n'est pas cliqué.

Espérons que cette aide.

30
répondu tharindu_DG 2014-11-11 16:47:22

Si vous utilisez Eclipse, Clic Droit sur votre Projet -> Maven -> mettre à Jour le Projet . Il ouvrira la boîte de dialogue Update Maven Project.

dans cette boîte de dialogue, cochez mise à jour forcée des Snapshots/versions case à cocher et cliquez sur OK . (Consultez l'image ci-dessous)

Update Maven Project Dialog Box

ça a marché pour moi !

23
répondu IamVickyAV 2017-03-15 15:10:04

je sais que je suis en retard pour la conversation, mais j'ai eu ce problème aussi. Je pense que le problème était le pare-feu de mon entreprise. Ma solution était de déconnecter du réseau, de se connecter à notre réseau sans fil ouvert et de forcer une mise à jour via Eclipse. Cette résolu tout.

19
répondu rrs 2012-11-14 16:13:31

j'ai eu le même problème avec eclipse où la ligne de commande maven build fonctionnait très bien mais essayez

  • allez dans .m2 / dépôt et effacement du répertoire associé
  • exécuter la mise à jour des dépendances maven dans eclipse

L'erreur disparaît....pourquoi ma ligne de commande mvn a fonctionné avec ces répertoires et eclipse .m2eclipse ne pouvait pas, je n'en ai aucune idée et ça craint un peu. Mon projet est maintenant en eclipse de nouveau.

10
répondu Dean Hiller 2012-02-16 14:43:54

j'ai résolu ce problème en supprimant dans les dossiers du dépôt où cette erreur a été montrée tout sauf le .jar et .fichiers pom.

9
répondu 17sprints 2012-03-19 17:08:29

" échec de la lecture du descripteur d'artefact " les problèmes indiquent généralement un problème avec le fichier pom de la dépendance dans le dépôt maven. Je vous suggérerais de vérifier deux fois si le nom du fichier pom est le même que celui que maven attend, et aussi de vérifier si le contenu du fichier pom est valide.

6
répondu eaykin 2012-03-28 06:58:12

j'ai un projet

 A/
 |--a1
 |--a2

maintenant il y a un autre projet dans notre organisation

 B/
 |--b1
 |--b2
 |--b3

(chaque module a1, b1, etc. et les projets parents A, B ont leur propre pom.xml conformément à la norme maven règles de parent et de l'enfant)

les deux projets sont vérifiés sur mon eclipse locale (de SVN). Je travaille activement sur A.

j'ai appris qu'il y a une bonne fonctionnalité commune (b4) développée en B et j'ai eu besoin de l'utiliser.

 B/
 |--b1
 |--b2
 |--b3
 |--b4 (NEW)

développeur de b4 ont déployé ce module b4 comme un artefact dans le dépôt de notre organisation. J'ai inclus la dépendance à la POM de mon module, c'est-à-dire la pom de a2.XML. Eclipse a téléchargé l'artefact requis de repo et je pourrais importer les classes qu'il contient.

le numéro commence... J'ai dû vérifier le code source de b4 dans un certain but et comme J'avais déjà vérifié B sur mon eclipse locale Je l'ai mis à jour à partir de SVN et j'ai vérifié le module b4. J'ai aussi dirigé pom.xml du module b4 avec des cibles comme clean,package etc. Après un certain temps, quand j'ai terminé mon codage, j'ai dû créer un bocal de mon module a2. J'ai lancé "package" sur le pom de a2.xml et BAM!! erreurs n erreurs pour le module a2.. Ces erreurs n'étaient pas non plus très conviviales. La seule chose est qu'il y avait le nom de b4 pour sûr dans les journaux.

Solution: Après avoir essayé de nombreuses solutions pendant de nombreuses heures, j'ai lancé "mvn-U clean install" à partir de la console dans le projet de mon B directoty (c'est à dire dans ../base/B). Comme B est le parent, la commande clean install s'est exécutée pour tous les modules, y compris b4, et elle s'est déroulée avec succès. Après cela, j'ai couru "mvn-U clean install" pour mon projet parent qui est A. et cela a fonctionné! le module a2 a été compilé, installé, (empaqueté plus tard) avec succès.

ici point important était si b4 est dans votre espace de travail ne pas installer seulement b4. Vous aurez besoin de nettoyer-installer complète B. Je suis venu à cette solution après la réponse de Zuill

EDIT: une chose de plus ici pour noter que si je n'avais pas eu B projet vérifié dans l'environnement Local alors cette question pourrait ne pas avoir eu lieu pour moi. J'ai tendance à penser que c'est arrivé parce que J'avais vérifié dans mon espace de travail local.

4
répondu simpleDev 2017-04-19 15:10:48

vous mentionnez deux groupIds différents, com.morrislgn.merchandising.common et com.johnlewis.jec.webpim.common . C'est peut-être le problème.

3
répondu phlogratos 2011-07-10 16:12:49

pour moi , c'était lié au paramétrage "User Setting".xml" à l'intérieur

Window > preferences > Maven > User Settings > and then browsing to the user Settings inside the { maven unarchived directory / }/apache-maven-2.2.1/conf/settings.xml . 
3
répondu Roshan Khandelwal 2013-08-05 22:11:05

N'a pas eu de chance de mise à jour via eclipse. A dû utiliser mvn clean install-U (qui a tout résolu).

3
répondu Toothless Seer 2016-04-30 19:46:31

j'ai eu le même problème en utilisant IntelliJ. J'ai résolu avec clic droit sur pom.xml > Maven > réimportation

3
répondu rlopezo 2018-02-28 20:15:28

référence Maven d'erreur "Échec de transfert..."

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
2
répondu Maverick 2017-05-23 10:31:39

pour moi, il semble que cela ait été en fait un problème avec le POM de dépendance.

j'ai contourné cela en utilisant le dépôt virtuel jitpack, avec lequel vous pouvez inclure des dépôts github basés sur leur URL au lieu de leur propre POM (qui semble avoir été erroné dans mon cas).

    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
2
répondu Phil Rykoff 2016-09-13 19:59:52

j'ai eu le même problème pendant un certain temps et en dépit de faire mvn -U clean install le problème n'a pas été résolu!

j'ai finalement résolu le problème en supprimant tout le dossier .m2 et j'ai redémarré mon IDE et le problème a disparu!

il arrive donc que le problème surgisse à cause d'incompatibilités ou de problèmes dans votre dépôt maven local.

2
répondu sakhoshdel 2017-01-27 07:29:55

j'ai eu un problème similaire. Dans mon cas, la version de testng dans mon .le dossier m2/repositories était corrompu, mais quand je l'ai supprimé et ai fait une nouvelle mise à jour maven, tout a bien fonctionné.

1
répondu William 2017-08-11 17:48:03

j'ai eu ce problème dans eclipse, mvn -U clean install n'a pas fonctionné mais droit en cliquant sur le projet et en sélectionnant Maven->le projet de mise à jour l'a corrigé.

0
répondu gary69 2016-04-17 20:38:02

je viens de commencer à utiliser STS Eclipse avec Maven pour la première fois. Le projet que j'ai mis en place avait déjà ses propres paramètres.XML. Si c'est le cas, vous voudrez mettre à jour vos paramètres.fichier xml dans la configuration d'exécution.

  1. clic droit sur le pom.xml et "Run As" - > " lancer les Configurations..."

  2. où il est dit" paramètres de l'utilisateur " cliquez sur le bouton fichier et ajoutez les paramètres.XML.

  3. je pense que c'est spécifique à votre projet mais mes" objectifs "est fixé à" installation propre "et j'ai vérifié sur" Skip Tests."

0
répondu Jose Peralez 2016-06-03 20:09:38

dans notre cas, l'erreur est apparue en raison du nom de groupe incorrect alors que certains des projets dans la configuration multi-module Maven références à d'autres.

nous avions un projet d'agrégateur ( billing-parent ) avec deux modules ( billing-api , billing ):

com.company.team:billing-parent
|-com.company.team:billing-api
|-com.company.team:billing

projet billing dépend de billing-api . Ainsi dans son pom.xml il avait:

<dependency>
    <groupId>com.company.team</groupId>
    <artifactId>billing-api</artifactId>
    <version>${project.version}</version>
</dependency>

nous avons décidé de renommer groupId de com.company.team à com.company.team.billing . Nous avons remplacé l'ancienne valeur dans les sections pom.xml et <parent> des deux modules. Mais j'ai oublié de mettre à jour la dépendance ci-dessus. Nous avions donc une configuration dans laquelle billing projet fait référence à l'ancien billing-api artefact. Finalement, il bifurque construction du billing module après un certain temps avec l'erreur comme

[ERROR] Failed to execute goal on project billing: Could not resolve dependencies for project com.company.team.billing:billing:jar:3.5.1-SNAPSHOT: Failed to collect dependencies at com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failed to read artifact descriptor for com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failure to find <parent of the com.company.team:billing-parent project which is not available any more>

malgré le fait que billing-api module construit sans erreurs.

Solution 1: renommer groupId dans dependency ainsi.

Solution 2: Remplacer groupId par ${project.groupId} propriété comme celle-ci:

<dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>billing-api</artifactId>
    <version>${project.version}</version>
</dependency>

Conclusion. Donc mon conseil au cas où vous rencontriez une erreur dans la configuration multi-modules serait de bien vérifier groupId et artifactId des dépendances sur les modules voisins.

0
répondu Lu55 2018-06-08 13:29:42

cette erreur est essentiellement de dire que maven ne pouvait pas lire une certaine dépendance du dépôt local. Cela pourrait se produire parce qu'un fichier jar n'a pas été téléchargé correctement. Donc, allez dans votre dépôt maven local et assurez-vous qu'il n'y a pas de .lastUpdated extension de fichier.

0
répondu Sandoval0992 2018-09-09 05:55:25

j'ai résolu ce problème en changeant le réglage maven.xml et le référentiel

-3
répondu wonbin2011 2017-01-11 06:06:12