Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Added Maven dependency, Eclipse doesn't see it

I add guava 17.0 to my pom.xml, Eclipse automatically rebuilds project.

Ran mvn dependency:resolve, maven shows com.google.guava:guava:jar:17.0:compile in the list of resolved files.

However when in Eclipse I try to auto-complete com.google.g, it says "No default proposals". I've added dependencies in my pom.xml before, run mvn dependency:resolve and Eclipse picked them up immediately. What's different this time?

I've tried the following so far:

  • Tried cleaning the project and letting it automatically rebuild.
  • Clean, auto-rebuild, re-start Eclipse.
  • mvn clean followed by mvn install
  • https://stackoverflow.com/a/6913992/91933
  • https://stackoverflow.com/a/12978632/91933
  • https://stackoverflow.com/a/2393810/91933 (although I couldn't get Eclipse to accept $HOME/.m2 as the Maven repository (which it is)).

I can see target/<projname>-1.0-SNAPSHOT/WEB-INF/lib/guava-17.0.jar.

My configuration:

  • OS: OS X 10.9.3
  • Maven: 3.1.1
  • Eclipse: Kepler (with m2e 1.4)
like image 351
markvgti Avatar asked Jun 30 '14 05:06

markvgti


2 Answers

The suggestion by @khmarbaise works best and solves all problems.

  1. Just delete the project from Eclipse.

  2. Re-import as "Existing Maven Projects" and point it towards the directory that contains the project's pom.xml file.

  3. Let Eclipse's m2e plugin handle the rest

Worked flawlessly for me.

The following advice (taken from https://developers.google.com/appengine/docs/java/webtoolsplatform#maven) may only apply to GAE projects, but seems like it should be generally applicable (my project is GAE, so can't be sure):

The directory at the root of the Maven project must not contain any of the following:

1. A subdirectory named target

2. A subdirectory named .settings

3. A file named .classpath

4. A file named .project 
like image 120
markvgti Avatar answered Sep 19 '22 12:09

markvgti


In file pom.xml inside < dependency > seleneium maybe you have defined < scope> test e.g. < scope>test < /scope>.

Removing/deleting this also can solve your problem.

like image 22
Darko Margetic Avatar answered Sep 21 '22 12:09

Darko Margetic