Create Maven Project using Command Line

In this guide, we'll walk through the steps to create a simple Maven project using the command line. This tutorial assumes that you have already installed Maven and JDK 21 on your machine.

Step 1: Verify Maven and Java Installation

Before we begin, let's verify that Maven and Java are correctly installed on your system.

Verify Maven Installation

Open your command line terminal and type:

mvn -v

You should see an output similar to:

Apache Maven 3.8.5 (b89d5959fcde851dcb1c8946e2987cb6db844df6)
Maven home: /usr/local/apache-maven-3.8.5
Java version: 21, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-21

Verify Java Installation

Type the following command to check your Java version:

java -version

You should see an output similar to:

java version "21" 2023-09-21 LTS
Java(TM) SE Runtime Environment (build 21+36-LTS-1491)
Java HotSpot(TM) 64-Bit Server VM (build 21+36-LTS-1491, mixed mode, sharing)

Step 2: Create a Simple Maven Project

We'll use Maven's archetype:generate goal to create a simple project. This goal generates a project structure based on a predefined archetype.

Run the following command in your terminal:

mvn archetype:generate -DgroupId=com.companyname.projectname -DartifactId=simple-maven-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

This command creates a new Maven project with the following parameters:

  • groupId: The identifier for your project’s group. Typically follows the reverse domain name convention.
  • artifactId: The name of your project.
  • archetypeArtifactId: Specifies the archetype to use. maven-archetype-quickstart is a simple archetype suitable for beginners.
  • interactiveMode: If set to false, it runs in batch mode without prompting for user input.

After executing the command, you should see an output similar to:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.345 s
[INFO] Finished at: 2023-07-09T14:50:30+05:30
[INFO] ------------------------------------------------------------------------

Step 3: Navigate to the Project Directory

Change your directory to the newly created project directory:

cd simple-maven-project

Step 4: Understand the Project Structure

The generated project structure looks like this:

simple-maven-project
│   pom.xml
└───src
    ├───main
    │   └───java
    │       └───com
    │           └───companyname
    │               └───projectname
    │                   └───App.java
    └───test
        └───java
            └───com
                └───companyname
                    └───projectname
                        └───AppTest.java

Key Files and Directories

  • pom.xml: The Project Object Model file where you define your project configuration and dependencies.
  • src/main/java: Contains the source code of your application.
  • src/test/java: Contains the test code for your application.

Step 5: Update the pom.xml File

Open the pom.xml file and update it with the following content to ensure we use the latest versions of Java and JUnit:

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.companyname.projectname</groupId>
    <artifactId>simple-maven-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
                <configuration>
                    <source>21</source>
                    <target>21</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Step 6: Build the Project

Run the following command to build the project:

mvn clean install

This command will compile your project and run any tests. The output should indicate a successful build:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.companyname.projectname.AppTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.345 s
[INFO] Finished at: 2023-07-09T14:52:30+05:30
[INFO] ------------------------------------------------------------------------

Step 7: Running the Application

The "Hello World!" message comes from the App.java file created by the Maven archetype. Open the src/main/java/com/companyname/projectname/App.java file, and you will see the following code:

package com.companyname.projectname;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Running the Packaged JAR

To run the application, first package it into a JAR file using Maven:

mvn package

This command will create a JAR file in the target directory.

Navigate to the target directory and run the JAR file using the following command:

java -jar target/simple-maven-project-1.0-SNAPSHOT.jar

You should see the output:

Hello World!

Conclusion

In this tutorial, we created a simple Maven project using the command line. We used Maven's archetype:generate goal to generate a project structure, updated the pom.xml to use the latest versions of Java and JUnit, built the project, and ran the packaged JAR. Maven simplifies project management and dependency management, making it a valuable tool for Java developers.

Comments