Maven Build-Tool
Maven Build-Tool
Apache Maven is a powerful build automation and project management tool primarily used for Java-based projects. It helps you compile, package, test, and manage dependencies in a structured way.

Maven Introduction
What is Maven?
Apache Maven is a build automation and project management tool for Java-based projects.
It helps developers compile, test, package, and manage dependencies using one standard process.
Think of Maven as the manager of your Java project — it tells your computer how to build, test, and deploy your software.
Why Is Maven Needed?
Before Maven, developers had to:
-
Manually download and manage JAR files (dependencies)
-
Use custom scripts to compile and package code
-
Lack consistency between different projects
Maven solves all this by automating the entire process and bringing standardization.
Key Concepts in Maven
1. POM (Project Object Model)
-
Central file:
pom.xml -
Contains project info, dependencies, build instructions
2. Dependencies
-
External libraries (like JUnit, MySQL connector)
-
Maven auto-downloads them from online repositories
3. Build Lifecycle
-
Predefined phases:
compile,test,package,install,deploy
4. Repositories
-
Local: On your computer
-
Central: Maven Central (online)
-
Remote: Shared across teams or CI/CD
Maven Lifecycle Phases
| Phase | Description |
|---|---|
| validate | Checks if project is correct |
| compile | Compiles Java code |
| test | Runs unit tests |
| package | Bundles into .jar or .war |
| install | Installs into local repository |
| deploy | Uploads to remote server/repo |
Benefits of Using Maven
| Benefit | Description |
|---|---|
| Dependency Management | Automatically downloads and updates libraries |
| Standard Build Process | Same build steps for every project |
| Directory Structure | Uses consistent project structure |
| Easy Integration | Works with Jenkins, Eclipse, IntelliJ, etc. |
| Plugin Support | Use plugins for testing, code coverage, etc. |
Maven Directory Structure (Standard)
Summary Table
| Topic | Details |
|---|---|
| Tool Name | Apache Maven |
| Use | Build automation and dependency management |
| Language Support | Java (mostly), others possible |
| Config File | pom.xml |
| Repositories | Local, Remote, Central |
Real-World Example
If you’re building a Java web app:
-
Maven will download Tomcat & Spring Boot
-
Compile your code
-
Run tests
-
Package it into a
.jaror.war -
Install to local/remote repository
Maven Commands
Maven Commands – Complete Guide for Beginners
Apache Maven provides a set of powerful commands to build, compile, test, package, install, and deploy Java projects in a consistent and automated way.

Basic Maven Command Structure
You run Maven commands from the terminal inside your project folder (where pom.xml is located).
Most Common Maven Commands
| Command | Description |
|---|---|
mvn clean |
Deletes the target/ folder (previous builds) |
mvn compile |
Compiles the source code (src/main/java) |
mvn test |
Runs tests from src/test/java |
mvn package |
Creates a .jar or .war file in target/ |
mvn install |
Installs the package to your local repository |
mvn deploy |
Uploads the final package to a remote repository |
mvn site |
Generates a project site (documentation) |
Maven Build Lifecycle Commands
These follow Maven’s default lifecycle:
You don’t need to run each one manually — running a later phase will auto-run all previous ones.
Example:
Will run: validate → compile → test → package
Explanation with Example
Let’s say you’re building a Java project:
1. mvn clean
Cleans up previous build files from target/
2. mvn compile
Compiles your main source code (src/main/java)
3. mvn test
Runs unit tests in src/test/java using libraries like JUnit
4. mvn package
Packages compiled code into .jar or .war based on pom.xml
5. mvn install
Installs the .jar or .war into your local Maven repository so other local projects can use it
6. mvn deploy
Uploads the package to a remote repository (like Nexus/Artifactory) — used in CI/CD
Other Useful Commands
| Command | Description |
|---|---|
mvn help:help |
Shows Maven help info |
mvn validate |
Validates if the project is correct and complete |
mvn dependency:tree |
Shows project dependency tree |
mvn archetype:generate |
Creates a new Maven project (template) |
Summary Table
| Command | Purpose |
|---|---|
mvn clean |
Remove old build |
mvn compile |
Compile source code |
mvn test |
Run tests |
mvn package |
Create .jar or .war |
mvn install |
Add to local repo |
mvn deploy |
Upload to remote repo |