ChatGPT解决这个技术问题 Extra ChatGPT

How to configure Eclipse build path to use Maven dependencies?

I would like to take advantage of the features that Maven provides for managing dependencies in a project. My brief understanding of how Maven works is that it will aquire the JARs needed and then build the project with these libraries.

Currently I have a simple POM file set up as a test:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

To manage dependencies, I usually add the project or JAR to the build path and then i'll be able to build my project..

But when using M2Eclipse the dependencies are not added automatically to the build path. Is there any configuration to let Eclipse know that the Maven is managing the dependencies?


B
Buhb

If you right-click on your project, there should be an option under "maven" to "enable dependency management". That's it.


m2eclipse doesn't do this by default if you import a project created with mvn eclipse:eclipse, so this always seems to trip people up.
It was actually enabled already for my project. Maybe because I chose to add a POM file to an existing project? However doing Maven > Update project configuration seems to have fixed it for me. Also it was your answer that eventually led me to discovering that toolbar where I could fix the project. Many thanks
What if there is no "Maven" option in the right-click menu, even though I seem to have m2eclipse installed?
Ah, "Configure" => "Convert to Maven Project" is your friend!
@dfrankow what if "Configure" => "Convert to Maven Project" option does not exist ??
d
davek

if you execute

mvn eclipse:clean

followed by

mvn eclipse:eclipse

if will prepare the eclipse .classpath file for you. That is, these commands are run against maven from the command line i.e. outside of eclipse.


Note that this works by using a classpath variable (M2_REPO) to refer to your dependencies, it doesn't use m2eclipse and I don't believe it picks up and dependencies you add as you work on the project - but it's great for getting the initial setup going
@matt b: You need to redo mvn eclipse:eclipse each time your dependencies change.
To add to what Buhb said, do mnv eclipse:eclipse on the command line and refresh the Eclipse project every time you add more deps to pom.xml.
There is no need for this when using the m2eclipse plugin.
I'm using the m2eclipse plugin and was experiencing the problem after importing an existing maven project into eclipse. Doing mvn eclipse:clean and mvn eclipse:eclipse actually fixed the problem for me.
P
Pascal Thivent

I'm assuming you are using m2eclipse as you mentioned it. However it is not clear whether you created your project under Eclipse or not so I'll try to cover all cases.

If you created a "Java" project under Eclipse (Ctrl+N > Java Project), then right-click the project in the Package Explorer view and go to Maven > Enable Dependency Management (depending on the initial project structure, you may have modify it to match the maven's one, for example by adding src/java to the source folders on the build path). If you created a "Maven Project" under Eclipse (Ctrl+N > Maven Project), then it should be already "Maven ready". If you created a Maven project outside Eclipse (manually or with an archetype), then simply import it in Eclipse (right-click the Package Explorer view and select Import... > Maven Projects) and it will be "Maven ready".

Now, to add a dependency, either right-click the project and select Maven > Add Dependency) or edit the pom manually.

PS: avoid using the maven-eclipse-plugin if you are using m2eclipse. There is absolutely no need for it, it will be confusing, it will generate some mess. No, really, don't use it unless you really know what you are doing.


Just found out that the maven-eclipse-plugin was the cause of my strange unresolved dependency errors. Thanks!
I just use EclipseNeon downloaded from official site.. There is no Maven option in menu after I created standard java project.Do we need to install something separately or everything is already downloaded with Neon?
@Pascal Thivent, I've imported the Maven project. I'm not able to find the solution for this one
A
Apurva Singh

Add this to .classpath file ..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

Thx


yeah, i need to add that manually everywhere for a last few years.... why don't they impove eclipse plugins to recongnize maven dependencies automatically ??
Thanks for this solution. This worked for me. I accidently deleted .project and .classpath files. This solution worked for me to add maven dependencies in class path,
The shortcut to generate above .classpath file automatically is Project ->Maven -> Update Project Otherwise simply Alt+F5
Worked for me too. Solved most of my missing dependencies but still have a couple of problems, so I wonder if the more user-friendly solutions aren't working because there is a small error somewhere (but this behavior doesn't help debug the problem...)
D
DevJav

Right click on the project Configure > convert to Maven project

Then you can see all the Maven related Menu for you project.


the right way if you didnt create a mvn project in the first place
m
madhu_karnati

I did like this..

Right click on the project--> configure-->convert to maven project. Right click on the project-->maven-->add dependencies.


T
Thomas Beer

In Eclipse (Mars) go to:

Project Properties --> Maven. Ensure that "Resolve dependencies from workspace projects" is disabled.


This did not solve the original problem, however it DID solve another nagging problem I've been having for weeks - After disabling that option, my project, which was only running from a maven command line, is now running again inside eclipse! Thank you!
b
borjab

I did not found the maven or configure menus but found the following button that solved my problem:

https://i.stack.imgur.com/HpRvA.jpg


E
EJB

When m2eclipse is installed properly, it should add dependencies automatically. However, you should generate the eclipse project files by entering:

mvn eclipse:m2eclipse

or, alternatively if you don't use m2eclipse:

mvn eclipse:eclipse

Attention: since version 2.8 maven-eclipse-plugin doesn't support "eclipse:m2eclipse" anymore (couldn't find reason/informations why)
M
Mearde

I had a slight variation that caused some issues - multiple sub projects within one project. In this case I needed to go into each individual folder that contained a POM, execute the mvn eclipse:eclipse command and then manually copy/merge the classpath entries into my project classpath file.


J
JBoy

For newer Eclipse versions (>=Mars) right click on project > configure > convert to Maven project


S
Saurabh Patil

Adding my answers for a couple of reasons:

Somehow none of the answers listed directly resolved my problem.

I couldn't find "Enable dependency management" under Maven. I'm using Eclipse 4.4.2 build on Wed, 4 Feb 2015.

https://i.stack.imgur.com/wVBdl.png


a
amralieg

None of that solved my problem. but what I did was if click on the pom.xml, there is a tab at the bottom named dependencies. in this tab it is split into 2 section, one called dependencies and one called dependency management. select every thing in the dependency section and click add to be under the dependency management control. close and reopen your project.


J
Juha Syrjälä

Maybe you could look into maven-eclipse-plugin instead of M2Eclipse.

There you basically add maven-eclipse-plugin configuration to your pom.xml and then execute mvn eclipse:eclipse which will generate the required .project and .classpath files for Eclipse. Then you'll have the correct build path in Eclipse.


eclipse:eclipse is bad, adds all libraries, one by one, to your dependencies instead of relying on Maven
k
kenny_k

Make sure your POM follows the naming convention, and is named in lowercase lettering as pom.xml and NOT POM.xml.

In my case all was right, but Eclipse still complained when trying to Right-click and Update project configuration - told me that the POM could not be read. Changed the name to lowercase - pom.xml from POM.xml - and it worked.


E
Eddy

I met this issue too. When I add dependencies in the pom.xml, I checked in the local folder /Users/xyz/.m2/ and the jars are already downloaded there, but cann't added the the buildpath of the eclipse.

My eclipse Version: Mars.2 Release (4.5.2) right click project > Maven > Enable Workspace Resolution And this solved my issue.


P
Puneet Lamba

Typically, you can copy the .classpath file from a working project since there isn’t anything project specific here assuming you’re structured as a standard Maven project.


r
r590

This worked for me in Eclipse Oxygen (4.7.0):

Right click Project -> Maven -> Select Maven Profiles... then check the Repository Proxy box, press OK.