The POM for project is missing, no dependency information available

Dave Jarvis picture Dave Jarvis · Sep 11, 2013 · Viewed 143.3k times · Source

Background

Trying to add a Java library to the local Maven repository using a clean install of Apache Maven 3.1.0, with Java 1.7. Here is how the Java archive file was added:

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

This created the following directory structure:

$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

The project's pom.xml file references the dependent project (the tree above) as follows:

<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

After running mvn compile, the following error was returned (full log on 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]

The documentation notes a number of issues that could be present, however none of these appear to apply.

Ideas

I tried the following, as per the documentation:

  1. Copy default settings to user's home directory for Maven:
    cp /opt/apache-maven-3.1.0/conf/settings.xml $HOME/.m2/.
  2. Edit the user's settings.xml file.
  3. Update the value for the local repository:
    ${user.home}/.m2/repository
  4. Save the file.

I also tried the following commands:

mvn -U
mvn clear -U

I tried using Maven 3.0.5, but that failed, too.

Question

How do you force Maven to use the local version of the library, rather than trying to seek out a library that is not yet available to download?

Related

Related questions and information that did not resolve the issue:

Answer

Dave Jarvis picture Dave Jarvis · Sep 11, 2013

Change:

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

To:

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

The groupId of net.sourceforge was incorrect. The correct value is net.sourceforge.ant4x.