Your First Maven Project

Jakob Jenkov
Last update: 2015-07-06

In this tutorial I will guide you through creating your first Maven project. A Maven Hello World project so to speak. Creating a Maven project means creating a POM file and the standard directory layout.

Actually, the project is not really a "Maven project". It is just a Java project which is built with Maven. The very same project could also be built with an Ant or Gradle build script.

Installing Maven

To use Maven your must first make sure that you have installed Maven on your computer. The first page in this Maven tutorial covers how to install Maven.

Creating the Project Directory

Once you have assured that Maven is installed, create a new directory somewhere on your hard disk. This directory will be the root directory for your first Maven project.

Creating the POM File

Once you have created the project root directory, create a file called pom.xml inside the directory.

Inside the pom.xml file you put the following XML:

<project xmlns=""





This is a minimal pom.xml file.

The groupId identifies your organization.

The artifactId identifies the project. More specifically, it identifies the artifact built from the project, like for instance a JAR file.

The version identifies the version of the artifact which the POM file builds. When you evolve the project and you are ready to release, remember to update the version number.

Other projects that need to use your artifact will refer to it using the groupId, artifactId and version, so make sure to set these to some sensible values.

Testing the POM File

When you have created the pom.xml file inside the project root directory it is a good idea to just test that Maven works, and that Maven understands the pom.xml file.

To test the pom.xml file, open a command prompt and change directory (cd) into the project root directory. Then execute this command:

mvn clean

The mvn clean command will clean the project directory for any previous temporary build files. Since the project is all new, there will be no previous build files to delete. The command will thus succeed.

You will see that Maven writes what project it has found. It will output that to the command prompt. This is a sign that Maven understands your POM. Here is an example of what Maven could output:

D:\data\projects\my-first-maven-project>mvn clean
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building hello-world 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hello-world ---
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.873 s
[INFO] Finished at: 2015-07-05T14:57:00+02:00
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------

Creating a Java Source Directory

Once you have tested the POM file works, create a Java source directory. The Java source directory should be located inside the standard directory layout. Basically, that means that should should create the following directory structure:


That means, a src directory inside the project root directory. Inside the src directory you create a main directory. Inside the main directory you create a java directory. The java directory is the root directory for your Java source code.

Creating a Java Source File

Inside the Java root source directory (src/main/java) create a new directory (java package) called helloworld.

Inside the helloworld directory (java package) insert a file named Inside the file you put the following Java code:

package helloworld;

public class HelloWorld {

	public static void main(String args[]){

		System.out.println("Hello World, Maven");



Save the file.

Building the Project

When you have created the Java source file, open a command prompt and change directory into the project root directory. Then execute this command:

mvn package

The mvn package command instructs Maven to run the package build phase which is part of the default build life cycle


Maven should now run. Maven will compile the Java source file and create a JAR file containing the compiled Java class.

Maven creates a target subdirectory inside the project root directory. Inside the target directory you will find the finished JAR file, as well as lots of temporary files (e.g. a classes directory containing all the compiled classes).

The finished JAR file will be named after this pattern:


So, based on the POM shown earlier in this tutorial, the JAR file will be named:


You have now built your first Maven project! Congratulations!

Jakob Jenkov

Featured Videos

Java ForkJoinPool

P2P Networks Introduction


Java Persistence
Close TOC
All Tutorial Trails
All Trails
Table of contents (TOC) for this tutorial trail
Trail TOC
Table of contents (TOC) for this tutorial
Page TOC
Previous tutorial in this tutorial trail
Next tutorial in this tutorial trail