m2eclipse says "Missing artifact" but I can build from cmdline!

48,031

Solution 1

I finally found a workaround. It is surely a bug in m2eclipse, however the problem disappeared when I added quartz-1.6.0.pom next to quartz-1.6.0.jar in .m2\repository\opensymphony\quartz\1.6.0\
The pom is not present at http://repo1.maven.org/maven2/opensymphony/quartz/1.6.0/ but you can extract it from quartz-1.6.0-bundle.jar linket at http://jira.opensymphony.com/browse/QUARTZ-482
It's a strange solution but it worked on the PCs of my collegues too.

Solution 2

You may need to to tell Eclipse to force update:

Project -> Maven -> Update Maven Project

and then make sure you have selected:

Force Updates of Snapshots/Releases

this happens when mvn install copies some jar files into Maven repository and Eclipse had checked this repo BEFORE this jar has been copied there.

Solution 3

If Dependency management is enabled when the above problems occur in Eclipse you can Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management. This normally remove any dependency errors in the pom.xml.

Also do as @Nishant indicated in his answer above after the above steps to complete the projects dependencies.

Solution 4

right click on your project > Maven > Update Dependencies

then

right click on your project > Maven > Update Project configuration

Assuming you M2Eclipse plugin is installed correctly this should solve the issue. Also, check if there is an option right click project > Maven > Enable dependency Management select that.

Solution 5

Adding my 2c for future Googlers:

Whenever this problem shows up, I delete the corresponding folder from the m2 repository (on a mac it's on ~/.m2/repository) and build again from eclipse with clean install.

Works every single time.

Share:
48,031
Pino
Author by

Pino

Updated on August 07, 2022

Comments

  • Pino
    Pino almost 2 years

    I'm trying to use this Sonatype Eclipse plugin for the first time to handle an existing (huge) software that I can build with maven form the command line.

    I have configured the plugin to use my maven 2.2.1 installation instead of the built-in Maven 3.

    In Eclipse I have 25 projects (loaded through the root pom.xml) and 4 of them have compilation errors; the maven console contains a lot of lines like this one:

    Missing artifact commons-logging:commons-logging:jar:1.0.4:compile

    I have all the jars in my repository and the M2_REPO classpath variable correctly defined. Why the plugin doesn't see all the jars?

    The .classpath file of those projects simply references "MAVEN2_CLASSPATH_CONTAINER", there isn't a list of the jars. The pom.xml in Eclipse shows an error on the first line for the missing jars but I can build from the command line!

    Any idea? I need help! I will try to move to NetBeans if I don't solve this problem.

    Thank you.