web-dev-qa-db-fra.com

Le POM du projet est manquant, aucune information de dépendance disponible

Contexte

Essayez d'ajouter une bibliothèque Java au référentiel Maven local à l'aide d'une nouvelle installation d'Apache Maven 3.1.0, avec Java 1.7. Voici comment le fichier d'archive Java a été ajouté:

mvn install:install-file \
  -DgroupId=net.sourceforge.ant4x \
  -DartifactId=ant4x \
  -Dversion=0.3.0 \
  -Dfile=ant4x-0.3.0.jar \
  -Dpackaging=jar

Cela a créé la structure de répertoire suivante:

$HOME/.m2/repository/net/sourceforge/ant4x/
├── 0.3.0
│   ├── ant4x-0.3.0.jar.lastUpdated
│   └── ant4x-0.3.0.pom.lastUpdated
└── ant4x
    ├── 0.3.0
    │   ├── ant4x-0.3.0.jar
    │   ├── ant4x-0.3.0.pom
    │   └── _remote.repositories
    └── maven-metadata-local.xml

Le fichier pom.xml Du projet référence le projet dépendant (l'arborescence ci-dessus) comme suit:

<properties>
  <Java-version>1.5</Java-version>
  <net.sourceforge.ant4x-version>0.3.0</net.sourceforge.ant4x-version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<dependency>
  <groupId>net.sourceforge</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

Problème

Après avoir exécuté mvn compile, L'erreur suivante a été renvoyée ( journal complet sur Pastebin ):

[ERROR] Failed to execute goal on project ant4docbook: Could not resolve dependencies for project net.sourceforge:ant4docbook:jar:0.6-SNAPSHOT: Failure to find net.sourceforge:ant4x:jar:0.3.0 in http://repo.maven.Apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

La documentation note un certain nombre de problèmes qui pourraient être présents, mais aucun ne semble s'appliquer.

Des idées

J'ai essayé ce qui suit, selon la documentation:

  1. Copiez les paramètres par défaut dans le répertoire de base de l'utilisateur pour Maven:
     cp /opt/Apache-maven-3.1.0/conf/settings.xml $ HOME/.m2 /.
  2. Editez le fichier settings.xml de l'utilisateur.
  3. Mettez à jour la valeur du référentiel local:
     $ {user.home} /. m2/repository
  4. Enregistrez le fichier.

J'ai aussi essayé les commandes suivantes:

mvn -U
mvn clear -U

J'ai essayé d'utiliser Maven 3.0.5, mais cela a aussi échoué.

Question

Comment forcer Maven à utiliser la version locale de la bibliothèque plutôt que d'essayer de chercher une bibliothèque qui n'est pas encore disponible au téléchargement?

Apparenté, relié, connexe

Questions connexes et informations n'ayant pas résolu le problème:

44
Dave Jarvis

Changement:

<!-- ANT4X -->
<dependency>
  <groupId>net.sourceforge</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

À:

<!-- ANT4X -->
<dependency>
  <groupId>net.sourceforge.ant4x</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

Le groupId de net.sourceforge était inexact. La valeur correcte est net.sourceforge.ant4x.

17
Dave Jarvis

Le viseur <scope>provided</scope> vous donne l’occasion de dire que le fichier jar serait disponible au moment de l’exécution, ne le regroupez donc pas. Cela ne veut pas dire que vous n'en avez pas besoin au moment de la compilation, alors Maven essaierait de le télécharger.

Maintenant, je pense, les artefacts Maven ci-dessous n'existent pas du tout. J'essaye de chercher sur google, mais je ne parviens pas à trouver. Par conséquent, vous obtenez ce problème.

Remplacez groupId par <groupId>net.sourceforge.ant4x</groupId> pour obtenir le dernier pot.

<dependency>
  <groupId>net.sourceforge.ant4x</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

Une autre solution à ce problème est la suivante:

  1. Exécutez votre propre dépôt Maven.
  2. télécharger le pot
  3. Installez le fichier dans le référentiel.
  4. Ajouter un code dans votre pom.xml quelque chose comme:

http: // localhost/repo est votre URL de dépôt locale:

<repositories>
    <repository>
        <id>wmc-central</id>
        <url>http://localhost/repo</url>
    </repository>
    <-- Other repository config ... -->
</repositories>
3
Gyanendra Dwivedi