Creating and importing Maven projects
We won't discuss here why Maven is good - let's just take it for granted. What is worth discussing is how IntelliJ IDEA makes your work with Maven more simple and intuitive.
This short tutorial will walk you step by step through the following tasks:
- Creating an IntelliJ IDEA project with a Maven module.
- Importing an existing Maven project into IntelliJ IDEA.
- Exploring the project structure.
- Adding and analyzing dependencies.
- Running a Maven goal.
- Maven integration is shipped with IntelliJ IDEA, and you do not need to perform any additional actions to install it. You can start using it straight away for importing Maven projects.
- For running Maven goals and for creating projects from archetypes, Maven should be downloaded and installed on your computer. Download Maven from http://maven.apache.org/download.html. Make sure that all the required environment variables are set as described in the installation instructions.
- You are working with IntelliJ IDEA version 9 or higher. For dependencies graphs, you will need Ultimate edition.
- Your Internet connection is up and running.
Creating a project with a Maven module
The starting point of any development process in IntelliJ IDEA is creating a project: on the Welcome screen click Create New Project icon or choose File | New Project on the main menu:
On the first page of the New Project wizard, in the selector pane, choose Maven Module. On the right side of the page, enter the necessary information, such as a project name and its location:
On the next page of the wizard, IntelliJ IDEA suggests the default values for the Maven cooordinates (GroupId, ArtifactId, and version). Let us accept the defaults:
If you want to create a module from an archetype, select Create from archetype, and choose the archetype you need. For our example, we’ll create a blank Maven module.
Now the project is ready. As you see, IntelliJ IDEA has produced a directory structure, and
pom.xml file for your module:
Importing an existing Maven project into an IntelliJ IDEA project
One of the most attractive features of IntelliJ IDEA’s Maven support is the possibility to open or import existing projects. Let’s import an existing Maven project. As a result, a new module will be added to our IntelliJ IDEA project.
There are three ways to import a Maven project into IntelliJ IDEA:
- Open the
pom.xmlfile of the Maven project you want to import (File | Open – select
pom.xml). However, this way you can create a new IntelliJ IDEA project rather than add a new module to an existing one.
- Use File | New Module on the main menu, and follow the steps of the wizard.
- Use the Maven Projects tool window. Let’s follow this way in our example.
To import a Maven project into an existing IntelliJ IDEA project:
1. In the Maven Projects tool window, click Add Maven Projects button:
2. In the Select Path dialog, select the
pom.xml file of the Maven project you want to import:
Exploring the resulting project
The IntelliJ IDEA project containing two Maven modules is ready. Let’s now explore its structure. Compare the directory tree of your project displayed in the Project tool window, with the collection of Maven projects with their goals and dependencies , displayed in the Maven Projects tool window:
The Maven Projects tool window helps perform numerous Maven-related tasks: configure settings, run goals, and more.
Working with dependencies
For the purposes of our tutorial, let’s add some basic content. In the Project tool window, expand the
src node, select
test/java directory, press ALT+INSERT, choose New | Java Class, and enter the name
qqTest.java. Use code completion to extend
TestCase, and ALT+INSERT to generate the test, set up, and tear down methods. You see that the resulting class is bright with “red code”:
This "red code" denotes the missing dependencies. This is where IntelliJ IDEA’s Maven support comes to help, with the two possible ways of providing the necessary dependencies:
We'll try both ways, and then, when the dependencies are ready, we'll analyze them visually.
Using quick fix
Place the caret at the
TestCase reference. If you wait just a moment, you will see a red light bulb, which means that IntelliJ IDEA knows how to solve this problem, and can suggest a quick fix. Click the light bulb, or press ALT+ENTER to show the list of possible quick fixes:
Choose Add Maven Dependency. The Maven Artifacts Search dialog box opens with
TestCase automatically filled in as the search string. Select the desired dependency from the list:
The missing import statements have been added, and the Maven dependency is now ready to be imported:
Click Import Changes or Enable Auto-Import. The Maven dependencies are added to the list of dependencies in the Maven Projects tool window, and to the External Libraries node of the Project tool window. The
pom.xml file is updated accordingly with the
Enjoy the green "traffic light" in the upper-right corner of the editor tab - it means that everything is OK with your code, and all the references are resolved.
Now let us restore the initial state of our sample project, and delete the
<dependencies> section. All the “red code” is back here. This step is required to try the alternative way, namely, generating dependencies in the
Generating dependencies in the pom.xml file
In the Project tool window, select the
pom.xml file under MavenModule, and open it for editing (F4). In the editor, place the caret next to the
<version> element, and choose Generate on the context menu. Alternatively, press ALT+INSERT.
In the Generate pop-up menu, select the type of dependencies you want to generate. As a result, a new
<dependency> group nested under
<dependencies> is created. So doing, the point of user input is placed inside the
<groupId> element. IntelliJ IDEA displays a suggestion list of suitable values:
Select the desired value, and press ENTER. The point of input is moved to the
<artifactId> element, then to
<version>. Every time IntelliJ IDEA suggests suitable values to fill in the blanks. Finally, when a new
<dependency> element is added, IntelliJ IDEA informs you that a new Maven module is ready to be imported. Click Import changes: the new dependency is added to the list of dependencies. You can now observe it in the Maven Projects tool window, and under the External Libraries node of the Project tool window:
As you see, we have achieved the same result:
junit archive is added to the project.
The amount of dependencies in a real-life project might be huge. If you want to evaluate the scale and complexity of your Maven project, use visual representation of the dependencies.
Important: Maven dependency graphs are only available in the Ultimate edition of IntelliJ IDEA.
The visual representation of the module dependencies is opened in a pop-up frame:
IntelliJ IDEA provides two ways of running Maven goals. You can:
- Create run/debug configuration and launch it.
- Use the Run Maven Build command in the Maven Projects tool window. This way doesn’t require any run/debug configuration.
For this tutorial, let’s use the second of the methods. To execute a goal, select it in the Maven Projects tool window, and press CTRL+SHIFT+F10, or click the Run Maven Build button on the toolbar:
Observe the results of the goal execution in the console of the Run tool window: