Missing Maven dependencies in Eclipse project

EclipseMaven 2M2eclipse

Eclipse Problem Overview


We have a project set up with maven for resolving dependancies. It usually works fine, but now I am trying to compile and run it on a new PC and I have problem with missing dependencies in Eclipse.

What is funny is that if I run "mvn package" in console or in eclipse, it works fine and even produces war containing all necessary jars. Only Eclipse complains with "The project was not built since its build path is incomplete. Cannot find the class file for org.slf4j.Logger...". If I compare the project with some other computer (where project works fine), I notice that there are quite a few libraries missing under "Maven dependencies" listing in Eclipse. Eventhough they are in the packaged war and they can be found also under repository folder.

So, the jar-s are there just Eclipse won't list them all under "Maven dependencies". What can I do?

Computer is running on Windows 7 with 64bit java & eclipse.

Eclipse Solutions


Solution 1 - Eclipse

Well, I tried everything posted here, unfortunately nothings works in my case. So, trying different combinations I came out with this one that solved my problem.

  1. Open the .classpath file at the root of your eclipse's project.

  2. Insert the following entry to the file:

Then, rebuild your project at eclipse (Project->Clean-Build). You now can check at the Java Build Path of you project at the Libraries tab the Maven Dependencies included: enter image description here

Solution 2 - Eclipse

Problem solved!

I don't know what exactly solved it, but I did 4 things in Eclipse:

  • Window->Preferences: Maven->Installations: Global settings -> open file and hardcoded localRepository
  • Project->Clean
  • right click on project: Maven->Update dependencies
  • right click on project: Maven->Update project configuration

I guess it was the Update dependencies since right after first two there were no change.

Solution 3 - Eclipse

I'm also new to Eclipse, and I've been having a similar problem where Eclipse just won't recognize an import statement, even though all signs point to the dependency having been successfully downloaded.

You should check that your dependency file has actually been downloaded by going to the command line and typing

mvn dependency:tree

If you see your package there, then but Eclipse doesn't acknowledge it, the thing that works for me (sometimes) is to go to the terminal, cd into the project folder, and type

mvn eclipse:clean then mvn eclipse:eclipse

Finally refresh project in eclipse

I don't know why this works, and sometimes it doesn't work once, then doing it again does work... so worth a try!

Solution 4 - Eclipse

I had this issue for dependencies that were created in other projects. Downloaded thirdparty dependencies showed up fine in the build path, but not a library that I had created.

SOLUTION: In the project that is not building correctly,

  • Right-click on the project and choose Properties, and then Maven.

  • Uncheck the box labeled "Resolve dependencies from Workspace projects"

  • Hit Apply, and then OK.

  • Right-click again on your project and do a Maven->Update Snapshots (or Update Dependencies)

And your errors should go away when your project rebuilds (automatically if you have auto-build enabled).

Solution 5 - Eclipse

My Project was just screwed up. Here is how I fixed it for Eclipse Indigo x64 (J2EE 3.7.3):

  1. Deleted my POM file (backedup of course).
  2. Project Context Menu > Maven > Disable Maven Nature.
  3. Deleted the project (but not contents on disk).
  4. Re-imported as Import > General > Existing Project.
  5. Project Context Menu > Configure > Convert to Maven Project....
  6. Accept defaults from Maven wizard.
  7. Overwrite POM with your backedup POM. (Now you have Maven Dependencies folder).
  8. Maven Update/Clean for good measure.

Hope that helps someone. :)

Solution 6 - Eclipse

Well, I tried everything posted here, unfortunately nothings works in my case. So, trying different combinations I came out with this one that solved my problem.

  1. Open the .classpath file at the root of your eclipse's project.

  2. Insert the following entry to the file:

Then, rebuild your project at eclipse (Project->Clean-Build).

Solution 7 - Eclipse

For me the problem was maven couldn't find the settings.xml file which is located in myMavenFolder\conf.

What I did to fix the issue was to select the right location of the settings.xml file from eclipse:
Window -> Preferences -> Maven -> User Settings

Finally, hit apply and update your project

Solution 8 - Eclipse

Just in case anybody has tried all the other options and you are still stuck, try right-clicking on the project folder, head over to Maven option and click the "add dependency" button. For some reason Eclipse isn't updating the dependencies manually from the pom.xml at first try.

screen shot of menu selection

Solution 9 - Eclipse

I had a similar problem. I solved it by running the Maven->Update Project Configuration action

Solution 10 - Eclipse

So I'm about 4 or 5 years late to this party, but I had this issue after pulling from our repo, and none of the other solutions from this thread worked out in my case to get rid of these warnings/errors.

This worked for me:

From Eclipse go to to Window -> Preferences -> Maven (expand) -> Errors/Warnings. The last option reads "Plugin execution not covered by lifecycle configuration" - use the drop-down menu for this option and toggle "Ignore", then Apply, then OK. (At "Requires updating Maven Projects" prompt say OK).

Further Info:

This may not necessarily "fix" the underlying issue(s), and may not qualify as "best practice" by some, however it should remove/supress these warnings from appearing in Eclipse and let you move forward at least. Specifically - I was working with Eclipse Luna Service Release 1 (4.4.1) w/ Spring Dashboard & Spring IDE Core (3.6.3), and m2e (1.5) installed, running on Arch Linux and OpenJDK 1.7. I imported my project as an existing maven project and selected OK when warned about existing warnings/errors (to deal with them later).

Suppress/Remove

(Sorry, I'm not a designer, but added picture for clarity.)

Solution 11 - Eclipse

For the following steps worked in my case:

1 On eclipse, right click on the desired project Maven -> Disable Maven Nature

2 Right click again then go to Properties. Delete every evidence of external Maven dependency leaving only JRE System Library.

3 Right click one more time on the project then go to Configure -> Convert to Maven Project

Solution 12 - Eclipse

None of the solutions above worked for me, so this answer is for anyone else in my situation. I eventually found the problem myself, and a different solution. The pom.xml file contained a dependencyManagement tag that wrapped the dependencies, and M2Eclipse would not add the Maven Dependencies folder when this was present. So, I removed this tag, then carried out the solution offered by Ualter Jr., and Eclipse immediately added the missing folder!

Solution 13 - Eclipse

Here is the steps which i followed.

  1. Deleted maven project from eclipse.
  2. Deleted all the file(.setting/.classpath/target) other than src and pom from my source folder.
  3. imported again as a maven project
  4. build it again, you should be able to see maven dependencies.

Solution 14 - Eclipse

This is how I solved it

  • Window->Preferences: Maven->User Settings (Click on "open file" in resulting window, or just edit settings.xml with an external text editor like Notepad) Make sure localRepository (which is displayed in this window) is correct. I had a typo in my file.
  • Once you have corrected settings.xml, click on Update Settings, which is on this same Preferences->Maven->User Settings screen.

Now rebuild, and it will install the latest JAR's in the correct location.

Solution 15 - Eclipse

My answer is similar to that of @JerylCook: find another .classpath file in a working Maven project, edit your bad ones as that good working ones. The key is to add

<attributes>
    <attribute name="maven.pomderived" value="true"/>
</attributes>

in every <classpathentry> of type con and src. Don't forget to change <classpathentry .... /> to <classpathentry ...>xxx</classpathentry>.

At last, update the maven project and reinstall/rebuild in maven.

Solution 16 - Eclipse

I got this error when had an error in Pom.

  1. Run mvn eclipse:eclipse command on console to check that pom is parsable or not.
  2. If not parsable search for the error.

Solution 17 - Eclipse

If you have "nested paths" errors after performing Maven -> Update Project Configuration (or in Juno it's "Update Configuration...") then your build path is misconfigured.

Right-click project -> Build Path -> Configure Build Path

Ensure that only '/src' and directories at that level are included. If you have e.g. '/src' and also '/src/main/resources' present, this is incorrect. The second resource ('/src/main/resources') is "nested" under the first ('/src') which is causing your inability to import resources, since it prevents eclipse from seeing maven dependencies.

Solution 18 - Eclipse

My issue sounds similar so I'll add to the discussion. I had cancelled the import of an existing maven project into Eclipse which resulted in it not being allowed to Update and wouldn't properly finish the Work Space building.

What I had to do to resolve it was select Run As... -> Maven build... and under Goals I entered dependency:go-offline and ran that.

Then I right clicked the project and selected Maven -> Update Project... and updated that specific project.

This finally allowed it to create the source folders and finish the import.

Solution 19 - Eclipse

I could solve the error by

  1. Right click (your maven project) -> maven -> maven install

After successful installation

  1. Right click (your maven project) -> maven -> update project. And the whole error of maven got solved!

Solution 20 - Eclipse

For me it was sufficient add a buildCommand (org.eclipse.m2e.core.maven2Builder) and a nature (org.eclipse.m2e.core.maven2Nature) in the .project file, like this:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>iText</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.m2e.core.maven2Builder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.m2e.core.maven2Nature</nature>
	</natures>
</projectDescription>

and I had enter image description here

Solution 21 - Eclipse

I had a similar issue and have tried all the answers in this post. The closest I had come to resolving this issue was by combining the Joseph Lust and Paul Crease solutions. I added the backed up pom.xml file after deleting and reimporting the project, and nothing showed up until I deleted the dependency management tag in the pom.xml and magically the dependencies folder was there.

However, it broke up the child POM's since they need the parent pom.xml dependency management to function, and as a result my MVN was not functioning properly on the project either from Eclipse or the command line, giving a broken pom.xml error.

The last solution if all fails, is to manually import the .jar files needed by your project. Right click the project Properties -> Java Build Path -> Libraries and Add external Jar.

If your MVN is working correctly from the command line and you have done a successful build on the project, you will have all the repos needed in your .m2/repository folder. Add all the external jars mentioned in your dependencies tag of pom.xml and you will see a referenced library section in your Eclipse, with all the pesky red errors gone.

This is not the optimal solution, but it will let you work in Eclipse without any errors of missing dependencies, and also allow you to build the Maven project both from Eclipse and command line.

Solution 22 - Eclipse

This same problem happened to me, and it was because there an error in downloading a jar due to repo issues, indicated by a red flag in the pom.xml.

I added another repository so the red flag in the pom.xml disappeared and Eclipse then loaded the pom again, resolved its issue and listed the maven dependencies in Project Explorer. it sounds simple and obvious to resolve visible issues, but since Eclipse was quite happy to run maven, and build successfully, it was not obvious that the red flag and repo issue were at the root of its unwillingness to parse the pom and list the maven dependencies

Solution 23 - Eclipse

mvn eclipse:clean

then from eclipse: "Maven Update Project" does the trick!

Solution 24 - Eclipse

update the .classpath to below will work every time.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" output="target/classes" path="src/main/java">
		<attributes>
			<attribute name="optional" value="true"/>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
		<attributes>
			<attribute name="optional" value="true"/>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="WEB-INF/" kind="src" path="src/main/webapp"/>
	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="output" path="target/classes"/>
</classpath>

Solution 25 - Eclipse

Maven Dependencies: What solved it for me in Eclipse? I added the dependency in the "pom" file. I did a build, but could not see the Maven Dependency in the Eclipse. Next Step: Closed the project. Then Reopened the project. I could see the Maven dependencies.

Solution 26 - Eclipse

I experienced a similar problem lately after i created a maven project, the maven dependencies folder did not appear in the project structure.To solve this simply add any dependency in the pom file, such as in code below, or right-click on the project and go to maven and select add dependency, search for any dependency such as junit add this, and the maven dependency should appear on your project structure now.

<dependencies>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>4.2.9.RELEASE</version>
 <scope>runtime</scope>
 </dependency>
</dependencies>

Solution 27 - Eclipse

enter image description hereJust right click over Project folder and under maven > Update project > Select your project > OK. it will automatically download all dependencies under pom.xml to folder named Maven Dependencies.

Solution 28 - Eclipse

It's so amazing that this one problem has so many different causes and possible solutions. I found yet a different solution that worked for me.

Well, it's not so much a solution but a discovery: I can see the Maven Dependencies node in the Package Explorer, which is the default for the Java perspective, but I can not see it in the Java EE perspective, which uses the Project Explorer by default. Both of those explorers look very similar at quick glance, so you may expect to see the Maven Dependencies in both.

As I was trying to figure this out, I hadn't realized that difference, so it wasn't really a problem for me in the end after all.

Solution 29 - Eclipse

the whole project looked weird in eclipse, maven dependencies folder were missing, it showed some types as unknown, but I was able to build it successfully in maven. What fixed my issue was adding gen folder to source path on project build path.

Probably this is similar to this https://stackoverflow.com/questions/6185600/android-fbreaderj-gen-already-exists-but-is-not-a-source-folder-convert-to-a-s

Solution 30 - Eclipse

In Eclipse STS if "Maven Dependencies" disappears it, you have to check and fix your pom.xml. I did this (twice) and I resolved it. It was not a dependencies issue but a String generated and moved in a position random in my pom.xml.

Solution 31 - Eclipse

All above did not worked with me. For the fix was only to delete the repository folder under .m2 and then do a maven update from eclipse.

Solution 32 - Eclipse

So many answers. You see, there could be many reasons, why this is not working, as expected. In my case, I also did not realize the - Tag around my dependencies. facepalm

Example:

...
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${org.slf4j.version}</version>
		</dependency>
	</dependencies>
</dependencyManagement>

this only DEFINES the dependency for this and all subprojects with desired version! This is, what it e.g. should look like in the master-POM. To really use the lib in THIS current project, you have too add the depency as following:

...
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${org.slf4j.version}</version>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependencies>
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
	</dependency>
</dependencies>

NOW it will provide the lib in THIS current project.

Solution 33 - Eclipse

I also encountered this problem. It confused me several hours. I tried many of solutions which were suggested in this topic. At last, I found it was due to the Java Element Filters.

Java Element Filters.

Solution 34 - Eclipse

Below solution worked for me -
1- Go to project directory
2- run mvn eclipse:eclipse (Hope mvn is added in your path)
3- run mvn clean install

Refresh your project in Eclipse and check.

Solution 35 - Eclipse

window -> preferences -> Maven -> Instalations -> Global Settings C:\Program Files (x86)\apache-maven-(version)\conf\settings.xml

mvn dependency:tree mvn dependency:resolve

once it points to the correct settings file, right click on project : update dependencies, update project configuration, once it is not loaded or code still keep'n errors, close / open project

Solution 36 - Eclipse

for me issue was due to multi module project .

  1. delete project from disk
  2. checkout project from your repo and import as maven project in eclipse
  3. clean install

Solution 37 - Eclipse

I changed my project facet to java and copy pasted a working maven projects .classpath content to this project. This resolved my issue.

Solution 38 - Eclipse

Th ROOT CAUSE of this issue is that, when you port a project to a new machine, you have to delete the ".project" file in the root of your project, and try to import that. This makes the import smooth and Maven dependencies are properly configured for me

Note: You should exclude .project from Git versioning.

Solution 39 - Eclipse

From my end, I have tried all these and none of them worked. The most probable problem with this is that you have added more than one dependency, hence it is mandatory to wrap them in a <dependencies> </dependencies> tag. Hope it helps!

Solution 40 - Eclipse

I have the same issue as you, after trying all the clean, update and install and there was still missing artifacts. Problem for me is that profiles are not being applied. Check in your .m2/settings.xml and look for <activeProfile>. Go back to your project, right click under properties -> maven and enter your Active Maven Profiles. All the missing artifacts were resolved.

Solution 41 - Eclipse

I was also facing the same issue, it got resolved by using below : right click on Project-> maven->Update Project->Force update.

Solution 42 - Eclipse

You need to add the maven-compiler-plugin in your pom.

 1. Add the maven compiler plugin to your pom.

<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.0</version>
				<configuration>
					<release>13</release>
				</configuration>
			</plugin>
		</plugins>
	</build>

2]Right click on the project -> Maven ->Update Project

Solution 43 - Eclipse

I faced similar issues in STS4. Here's how I resolved it.

  • Build(mvn clean install) the project using command line.

  • Right click the project folder -> Maven -> Update Project.

Solution 44 - Eclipse

You need to change project Facets and project nature in eclipse. Right Click on project go to properties and you can find the above options. Refer below image. Project Natures

Solution 45 - Eclipse

In my case, maven did not have the Global Settings set in eclipse. This meant the internal maven, which eclipse uses to resolve dependencies did not know which repos to talk to.

You can find this in Window > Preferences > Maven > User Settings, and then point Global Settings to your external maven settings.xml.

Then i removed the broken projects and re-added them, and the Maven Dependencies library appeared again.

Solution 46 - Eclipse

For the following steps worked in my case:

1 On eclipse, right click on the desired project Maven -> Disable Maven Nature

2 Right click again then go to Properties. Delete every evidence of external Maven dependency leaving only JRE System Library.

3 Right click one more time on the project then go to Configure -> Convert to Maven Project

it worked for me also

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionhostnikView Question on Stackoverflow
Solution 1 - EclipseUalter Jr.View Answer on Stackoverflow
Solution 2 - EclipsehostnikView Answer on Stackoverflow
Solution 3 - EclipserogueleaderrView Answer on Stackoverflow
Solution 4 - EclipseIceBox13View Answer on Stackoverflow
Solution 5 - EclipseJoseph LustView Answer on Stackoverflow
Solution 6 - EclipseUalter Jr.View Answer on Stackoverflow
Solution 7 - EclipseI. YOCKView Answer on Stackoverflow
Solution 8 - EclipseFrankDupreeView Answer on Stackoverflow
Solution 9 - EclipseDarryl SibeonView Answer on Stackoverflow
Solution 10 - EclipseBrandon KView Answer on Stackoverflow
Solution 11 - EclipseRafael IsquierdoView Answer on Stackoverflow
Solution 12 - EclipsePaul CreaseView Answer on Stackoverflow
Solution 13 - Eclipsekaruna nidhanView Answer on Stackoverflow
Solution 14 - Eclipseguyland123View Answer on Stackoverflow
Solution 15 - EclipseWesternGunView Answer on Stackoverflow
Solution 16 - EclipseAhmed BilalView Answer on Stackoverflow
Solution 17 - EclipseKomodoDaveView Answer on Stackoverflow
Solution 18 - EclipseWelshView Answer on Stackoverflow
Solution 19 - EclipseNandan BhalwankarView Answer on Stackoverflow
Solution 20 - EclipseFrizz1977View Answer on Stackoverflow
Solution 21 - EclipseSaadView Answer on Stackoverflow
Solution 22 - EclipsebigbadmouseView Answer on Stackoverflow
Solution 23 - EclipseEbuzer Taha KANATView Answer on Stackoverflow
Solution 24 - EclipseJeryl CookView Answer on Stackoverflow
Solution 25 - EclipseKrishna RajagopalanView Answer on Stackoverflow
Solution 26 - EclipseJude UkanaView Answer on Stackoverflow
Solution 27 - EclipseDenil NairView Answer on Stackoverflow
Solution 28 - EclipseDangerView Answer on Stackoverflow
Solution 29 - Eclipsemik80View Answer on Stackoverflow
Solution 30 - EclipseLucianoDemuruView Answer on Stackoverflow
Solution 31 - EclipseKhalid AbdlqaderView Answer on Stackoverflow
Solution 32 - EclipseRobert FornesdaleView Answer on Stackoverflow
Solution 33 - EclipseKevin HeView Answer on Stackoverflow
Solution 34 - EclipseBasuView Answer on Stackoverflow
Solution 35 - EclipseTiago MediciView Answer on Stackoverflow
Solution 36 - EclipseMohammad Shadab View Answer on Stackoverflow
Solution 37 - EclipseParthiView Answer on Stackoverflow
Solution 38 - EclipseThangaView Answer on Stackoverflow
Solution 39 - EclipseMexicoBoyView Answer on Stackoverflow
Solution 40 - EclipseEddieView Answer on Stackoverflow
Solution 41 - EclipsePrashant singh ChouhanView Answer on Stackoverflow
Solution 42 - EclipseKarenView Answer on Stackoverflow
Solution 43 - EclipseJoohayView Answer on Stackoverflow
Solution 44 - EclipseRahulView Answer on Stackoverflow
Solution 45 - EclipseAdrian CView Answer on Stackoverflow
Solution 46 - Eclipseanurag1007View Answer on Stackoverflow