webentwicklung-frage-antwort-db.com.de

Der POM für das Projekt fehlt, es sind keine Abhängigkeitsinformationen verfügbar

Hintergrund

Es wurde versucht, eine Java Bibliothek zum lokalen Maven-Repository hinzuzufügen, indem eine Neuinstallation von Apache Maven 3.1.0 mit Java 1.7 durchgeführt wurde. So wurde die Archivdatei Java hinzugefügt:

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

Dadurch wurde die folgende Verzeichnisstruktur erstellt:

$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

Die Datei pom.xml Des Projekts verweist wie folgt auf das abhängige Projekt (der Baum oben):

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

Problem

Nach dem Ausführen von mvn compile Wurde der folgende Fehler zurückgegeben ( vollständige Anmeldung bei 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]

Die Dokumentation weist auf eine Reihe von Problemen hin, die vorliegen könnten, jedoch scheint keines davon zutreffend zu sein.

Ideen

Ich habe Folgendes gemäß der Dokumentation versucht:

  1. Kopiere die Standardeinstellungen in das Benutzerverzeichnis für Maven:
     cp /opt/Apache-maven-3.1.0/conf/settings.xml $ HOME/.m2 /.
  2. Bearbeiten Sie die settings.xml-Datei des Benutzers.
  3. Aktualisieren Sie den Wert für das lokale Repository:
     $ {user.home} /. m2/repository
  4. Speicher die Datei.

Ich habe auch die folgenden Befehle ausprobiert:

mvn -U
mvn clear -U

Ich habe versucht, Maven 3.0.5 zu verwenden, aber das ist auch fehlgeschlagen.

Frage

Wie können Sie Maven zwingen, die lokale Version der Bibliothek zu verwenden, anstatt nach einer Bibliothek zu suchen, die noch nicht zum Herunterladen verfügbar ist?

Verbunden

Verwandte Fragen und Informationen, die das Problem nicht behoben haben:

44
Dave Jarvis

Veränderung:

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

Zu:

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

Der groupId von net.sourceforge war falsch. Der richtige Wert ist net.sourceforge.ant4x.

17
Dave Jarvis

Der Anwendungsbereich <scope>provided</scope> gibt Ihnen die Möglichkeit mitzuteilen, dass die JAR-Datei zur Laufzeit verfügbar sein würde, also bündeln Sie sie nicht. Es bedeutet nicht, dass Sie es zur Kompilierungszeit nicht benötigen, daher würde maven versuchen, das herunterzuladen.

Jetzt denke ich, dass die unten genannten Maven-Artefakte überhaupt nicht existieren. Ich versuche Google zu durchsuchen, kann aber nicht finden. Daher bekommen Sie dieses Problem.

Ändern Sie groupId in <groupId>net.sourceforge.ant4x</groupId>, um das neueste Glas zu erhalten.

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

Eine andere Lösung für dieses Problem ist:

  1. Führen Sie Ihr eigenes Maven-Repo.
  2. lade das Glas herunter
  3. Installieren Sie das Glas im Repository.
  4. Fügen Sie einen Code in Ihre pom.xml ein, der etwa so aussieht:

Dabei ist http: // localhost/repo Ihre lokale Repo-URL:

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