Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Standard Maven Project Structure | Getting Started with Maven
Introduction to Maven

bookStandard Maven Project Structure

When you create a new Maven project, you will notice that it follows a strict directory layout. This standard structure is one of Maven's core strengths, as it ensures consistency across projects, simplifies build processes, and makes it easier for developers to understand any Maven-based codebase.

The default Maven directory structure looks like this:

README.md

README.md

copy
1
**Minimal Maven Project Structure with Comments**

com.example └── my-maven-app/ β”œβ”€β”€ pom.xml # Project Object Model file: defines project configuration and dependencies └── src/ β”œβ”€β”€ main/ β”‚ β”œβ”€β”€ java/ # Main application source code goes here β”‚ └── resources/ # Application resources (e.g., config files) go here └── test/ β”œβ”€β”€ java/ # Test source code (e.g., unit tests) goes here └── resources/ # Test resources (e.g., test data) go here

1
  • src/main/java: contains the application's main source code;
  • src/main/resources: contains non-code resources needed by the application, such as configuration files;
  • src/test/java: contains unit test source code;
  • src/test/resources: contains resources needed for testing, such as test data files;
  • target: the output directory where Maven places compiled classes, packaged JARs, and other build artifacts.

Following this convention allows you to take advantage of Maven's automated build and testing features without extra configuration. Tools and plugins expect this layout, so adhering to it reduces errors and makes collaboration smoother when working with other developers.

question mark

Which directory in a standard Maven project is specifically intended for your application's main source code?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 1. ChapterΒ 3

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Suggested prompts:

Can you explain what each directory is used for in more detail?

Why is it important to follow the Maven directory structure?

Are there situations where I might need to customize the default Maven layout?

bookStandard Maven Project Structure

Swipe to show menu

When you create a new Maven project, you will notice that it follows a strict directory layout. This standard structure is one of Maven's core strengths, as it ensures consistency across projects, simplifies build processes, and makes it easier for developers to understand any Maven-based codebase.

The default Maven directory structure looks like this:

README.md

README.md

copy
1
**Minimal Maven Project Structure with Comments**

com.example └── my-maven-app/ β”œβ”€β”€ pom.xml # Project Object Model file: defines project configuration and dependencies └── src/ β”œβ”€β”€ main/ β”‚ β”œβ”€β”€ java/ # Main application source code goes here β”‚ └── resources/ # Application resources (e.g., config files) go here └── test/ β”œβ”€β”€ java/ # Test source code (e.g., unit tests) goes here └── resources/ # Test resources (e.g., test data) go here

1
  • src/main/java: contains the application's main source code;
  • src/main/resources: contains non-code resources needed by the application, such as configuration files;
  • src/test/java: contains unit test source code;
  • src/test/resources: contains resources needed for testing, such as test data files;
  • target: the output directory where Maven places compiled classes, packaged JARs, and other build artifacts.

Following this convention allows you to take advantage of Maven's automated build and testing features without extra configuration. Tools and plugins expect this layout, so adhering to it reduces errors and makes collaboration smoother when working with other developers.

question mark

Which directory in a standard Maven project is specifically intended for your application's main source code?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 1. ChapterΒ 3
some-alt