Java项目没有pom,项目的POM缺失,无依赖信息

  • Post author:
  • Post category:java


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:

1.5

0.3.0

UTF-8

net.sourceforge

ant4x

${net.sourceforge.ant4x-version}

provided

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:

Copy default settings to user’s home directory for Maven:cp /opt/apache-maven-3.1.0/conf/settings.xml $HOME/.m2/.

Edit the user’s settings.xml file.

Update the value for the local repository:${user.home}/.m2/repository

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:

解决方案

Change:

net.sourceforge

ant4x

${net.sourceforge.ant4x-version}

provided

To:

net.sourceforge.ant4x

ant4x

${net.sourceforge.ant4x-version}

provided

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