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>
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.
I tried the following, as per the documentation:
cp /opt/apache-maven-3.1.0/conf/settings.xml $HOME/.m2/.
${user.home}/.m2/repository
I also tried the following commands:
mvn -U mvn clear -U
I tried using Maven 3.0.5, but that failed, too.
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 questions and information that did not resolve the issue:
0 is missing, no dependency information available Error You Just need to add external Repository to your pom. since this is using Mulsoft-Release repository not Maven Central . Second solution is Just delete _remote. repositories file in your local repo, where this artifact resides.
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
.
The scope <scope>provided</scope>
gives you an opportunity to tell that the jar would be available at runtime, so do not bundle it. It does not mean that you do not need it at compile time, hence maven would try to download that.
Now I think, the below maven artifact do not exist at all. I tries searching google, but not able to find. Hence you are getting this issue.
Change groupId
to <groupId>net.sourceforge.ant4x</groupId>
to get the latest jar.
<dependency> <groupId>net.sourceforge.ant4x</groupId> <artifactId>ant4x</artifactId> <version>${net.sourceforge.ant4x-version}</version> <scope>provided</scope> </dependency>
Another solution for this problem is:
Where http://localhost/repo is your local repo URL:
<repositories> <repository> <id>wmc-central</id> <url>http://localhost/repo</url> </repository> <-- Other repository config ... --> </repositories>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With