Alejandro Duarte

Importing a Maven project in Eclipse

This tutorial explains how to import an existing Maven project into Eclipse and how to create a run configuration for a Maven goal. This is useful, for example, when using the Jetty Maven plugin that allows you to quickly deploy and run a Java web application using this popular server.

Maven is a project management tool that goes beyond dependency management. See Learning Maven Concepts for more.

Download an existing Maven project

This tutorial uses a Maven archetype that generates a Java web application with a preconfigured Jetty Maven Plugin in it:

mvn -B archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=LATEST -DgroupId=org.test -DartifactId=webapp -Dversion=1.0-SNAPSHOT
If you prefer, you can generate a ZIP file with the project at or Make sure you select the Plain Java Servlet option before downloading the project.

The project should include a directory with a Maven project in it:

Maven project directory
You need Node.js installed on your computer to compile the example application.

Import the project

  1. In Eclipse, select File > Import…​

  2. In the import window, expand Maven, select Existing Maven Projects, and click Next:

    Import window
  3. Click Browse and select the directory that contains the pom.xml file of the project you want to import:

    Select the root directory
    If you are importing a multi-module Maven project, make sure you select the correct project to import. You will typically want to select all the projects.
  4. Click Finish. Eclipse will import the project and start downloading the required resources.

Running Maven goals

Eclipse has built-in integration with Maven. You can run common commands such as mvn install or mvn jetty:run without having to leave the IDE.

The most common commands are available in the Run As and Debug As folders when you right-click the project in Project Explorer view. For example, to run mvn install, right-click the project and select Run As > Maven install:

Maven install
You can find additional useful options in the Maven submenu.

You’ll see how Eclipse executes the install build phase (and all the previous phases in the Maven’s default lifecycle) that download dependencies from the repositories and copies the generated artifacts into your local Maven repository among other things.

Creating a run configuration

A run configuration is a shortcut to run a specific task from within the IDE. Let’s create a run configuration for the jetty:run Maven goal to make it simpler to run the web application from the IDE.

If you are using Spring Boot, use the spring-boot:run goal.
  1. Right-click the project in the Project Explorer view and select Run As > Maven build.

  2. In the Edit Configuration window, for Goals type jetty:run and optionally give the run configuration a new name:

    jetty:run configuration
  3. Click Run to save the new configuration and execute it. You should see the Console view with the log generated by the application and the Jetty server.

  4. To stop the server, click the Terminate icon in the Console view:


    You can deploy and run the web application by clicking the run (or the debug) icon in the toolbar and selecting the corresponding run or debug configuration:

If you use the Vaadin project used in the tutorial, you can invoke the web application at http://localhost:8080.

That’s it. Now you can use Eclipse to develop your Maven application. To learn more about:

Vaadin is an open-source framework offering the fastest way to build web apps on Java backends

Comments (15)

Pedro Enrique
7 months ago Apr 20, 2021 12:00am
Alejandro Duarte
7 months ago Apr 20, 2021 11:01am
Pedro Enrique
7 months ago Apr 20, 2021 5:30pm
Pedro Enrique
7 months ago Apr 21, 2021 8:58pm
Pedro Enrique
7 months ago Apr 27, 2021 10:52am
Alejandro Duarte
2 years ago Sep 17, 2019 8:47am
Alejandro Duarte
2 years ago Jul 31, 2019 2:10pm
Wensley Brands
2 years ago Jul 31, 2019 2:27pm
Alejandro Duarte
2 years ago Jul 31, 2019 3:13pm
Alejandro Duarte
2 years ago May 31, 2019 9:53am