Maven is the most widely used build tool for Java projects. It handles dependency management, compilation, testing, and packaging through a standardized project structure and a single configuration file: pom.xml. This guide walks through creating a project from scratch using Maven's quickstart archetype.
Prerequisites
- Java JDK installed (Java 8 or later)
- Maven installed — verify with
mvn --version
mvn --version
# Apache Maven 3.9.4
# Java version: 21.0.1, vendor: Eclipse Adoptium
If Maven isn't installed, download it from maven.apache.org or install it via brew install maven (macOS) or sudo apt install maven (Ubuntu).
Step 1: Generate the Project
Run the following command to generate a new project using the maven-archetype-quickstart template:
mvn archetype:generate \
-DgroupId=com.mycompany.app \
-DartifactId=my-java-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
The parameters:
| Parameter | Description |
|---|---|
groupId | Reverse-domain identifier for your organization (com.mycompany.app) |
artifactId | The project/module name — becomes the folder name |
archetypeArtifactId | The template to use — quickstart is the standard Java starter |
interactiveMode=false | Skips the interactive prompt; uses provided values directly |
Maven downloads the archetype metadata and creates a folder named my-java-app in the current directory.
Step 2: Project Structure
The generated structure follows Maven's standard layout:
my-java-app/
├── pom.xml
└── src/
├── main/
│ └── java/
│ └── com/mycompany/app/
│ └── App.java
└── test/
└── java/
└── com/mycompany/app/
└── AppTest.java
All production source code goes in src/main/java. All test code goes in src/test/java. This separation is enforced by Maven's build lifecycle.
Step 3: The Generated pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-java-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Update maven.compiler.source and maven.compiler.target to match your Java version. To add dependencies, insert <dependency> blocks inside <dependencies>.
Step 4: Build the Project
cd my-java-app
mvn install
This runs the full build lifecycle: compile → test → package → install. The JAR is placed in target/my-java-app-1.0-SNAPSHOT.jar and also installed to your local Maven repository (~/.m2/repository).
Common lifecycle commands:
mvn compile # compile source code only
mvn test # compile and run tests
mvn package # compile, test, and create JAR/WAR
mvn install # package + install to local .m2 repo
mvn clean # delete the target/ directory
mvn clean install # clean then full build — most common
Importing Into an IDE
IntelliJ IDEA: File → Open → select the my-java-app folder. IntelliJ detects pom.xml and imports it as a Maven project automatically.
Eclipse: Generate Eclipse project files first, then import:
mvn eclipse:eclipse
In Eclipse: File → Import → Existing Projects into Workspace → navigate to the project folder.
VS Code: Open the folder. Install the "Extension Pack for Java" extension — it detects pom.xml and configures the project automatically.
Adding a Dependency
To add a library, add its <dependency> to pom.xml and run mvn install. Maven downloads it automatically from Maven Central:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
Find dependency coordinates at mvnrepository.com — search for the library and copy the <dependency> snippet.
Summary
Use mvn archetype:generate with the maven-archetype-quickstart template to scaffold a new Java project in seconds. The result is a standard Maven project structure with pom.xml, source and test directories, and a working build. Run mvn clean install to compile, test, and package your application. Open the pom.xml folder directly in IntelliJ or VS Code for automatic Maven integration.
No comments :
Post a Comment
Please leave your message queries or suggetions.
Note: Only a member of this blog may post a comment.