web-dev-qa-db-fra.com

"Le POM pour ... est manquant, aucune information de dépendance disponible" même s'il existe dans le référentiel Maven

Problème:

Une dépendance ne sera pas téléchargée même si je l'ai copiée à partir du référentiel Maven.

Lorsque je survole la dépendance dans Eclipse, il me signale: "Maven Missing artifact org.raml:jaxrs-code-generator:jar:2.0.0".

Lorsque j'essaie mvn install Ou mvn compile, Il avertit: "[WARNING] The POM for org.raml:jaxrs-code-generator:jar:2.0.0 is missing, no dependency information available".

Essayé:

  • Télécharger le fichier jar dans le dossier ~/.m2/repository/org/raml/jaxrs-code-generator/2.0.0, Puis l'actualiser dans l'éditeur.

    • Quand je install ou compile, il semble l’ignorer.
  • Lancer mvn -U.

    • Identique à install ou compile.

En profondeur:

    <dependency>
        <groupId>org.raml</groupId>
        <artifactId>jaxrs-code-generator</artifactId>
        <version>2.0.0</version>
    </dependency>
  • La dépendance existe dans le référentiel Maven (la version est également correcte).

  • Utilisation d’Eclipse EE Neon 4.6.3, Apache Maven 3.3.9, Java 1.8.0_121.

  • Je n'ai pas de settings.xml Dans le dossier ~/.m2.

  • Je n'utilise aucun autre dépôt, local ou autre.

17
JoseHdez_2

Lisez attentivement le message d'avertissement:

Le POM pour org.raml: générateur de code jaxrs: jar: 2.0.0 est manquant, aucune information de dépendance disponible.

Le problème n'est pas le pot, mais le pom.xml qui manque.
Le fichier pom.xml répertorie les dépendances requises pour ce fichier jar que Maven utilisera pendant la construction et l’ensemble de l’emballage de votre application. Donc, vous en aurez vraiment besoin.

Notez que ce problème peut bien entendu survenir pour d'autres dépendances Maven et que les idées à résoudre restent toujours les mêmes.

Le site Web de Mule documente très bien cela en plus de quelques informations relatives à.


Comment résoudre ?

1) Solution de contournement rapide: rechercher sur Internet le pom.xml de l'artefact

Googler l'identifiant d'artefact, l'identifiant de groupe et sa version donnent des résultats généralement intéressants: liens du référentiel maven pour le télécharger.
Dans le cas du org.raml:jaxrs-code-generator:jar:2.0.0dépendance, vous pouvez télécharger le pom.xml du référentiel Maven mule:

https://repository.mulesoft.org/nexus/content/repositories/releases/org/raml/jaxrs-code-generator/2.0.0/

2) Nettoyez la solution de contournement pour un seul projet Maven: ajouter la déclaration du référentiel dans votre pom.

Dans votre cas, ajoutez les référentiels de mules Maven:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    ...
    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-snapshots</id>
            <name>MuleSoft Snapshot Repository</name>
            <url>http://repository.mulesoft.org/snapshots/</url>
            <layout>default</layout>
        </repository>
    </repositories>
    ...
</project>

3) Nettoyez la solution de contournement pour tout projet Maven: ajoutez la déclaration du référentiel dans votre settings.xml

 <profile> 
   <repositories>
    ...
    <repository>
      <id>mulesoft-releases</id>
      <name>MuleSoft Repository</name>
      <url>http://repository.mulesoft.org/releases/</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>mulesoft-snapshots</id>
      <name>MuleSoft Snapshot Repository</name>
      <url>http://repository.mulesoft.org/snapshots/</url>
      <layout>default</layout>
    </repository>
     ...
  </repositories>     
</profile>

Notez que dans de rares cas, le pom.xml _ déclarer les dépendances n’est nulle part. Donc, vous devez vous identifier si l'artefact nécessite des dépendances.

16
davidxxx

Vous devrez ajouter un référentiel externe à votre pom, car il utilise Mulsoft-Release référentiel non Maven Central

<project>
   ...
    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
    </repositories>
  ...
</project>

dépendance

Apache Maven - Configuration de plusieurs référentiels

2
XPLOT1ON