Open In App

Maven - Build Automation

Last Updated : 30 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Maven is a powerful build automation tool widely used in the software development industry. It simplifies the process of managing and building software projects, offering a structured approach to project configuration, dependency management, and build execution.

Build automation entails automating tasks involved in software construction, including compiling source code, running tests, packaging binaries, and deploying to production environments. Its main objectives are to enhance consistency, efficiency, and reliability throughout the software development life cycle.

Prerequisites:

  • Java Development Kit
  • Integrated Development Environment (we use STS)
  • Command-Line Interface to execute maven commands

Tools and Technologies:

  • Maven tool
  • Java
  • Spring framework
  • Spring Tool Suite
  • Command Prompt

Phases of Maven:

Maven operates through various phases:

  • validate: Checks if the project is correct and all necessary information is available.
  • compile: Compiles the source code.
  • test: Runs unit tests.
  • package: packages the complied code into JAR or WAR file format.
  • verify: Run integration tests into the local repository.
  • install: Install the packages into the packages.
  • deploy: copies the final packages into some remote location.

Workflow:

The workflow involves:

  • Code Check-in: Developers check-in code to the version control system.
  • Build Trigger: The CI/CD server detects changes and triggers a build.
  • Dependency Resolution: Maven resolves project dependencies defined in the POM file.
  • Compilation: Source code is compiled.
  • Testing: Unit tests are executed.
  • Packaging: Compiled code is packaged into artifacts.
  • Verification: Integration tests are run on the packaged code.
  • Installation or Deployment: Artifacts are installed in the local or remote repository.
  • Notification: Developers are notified of the build status.
graph LR
    A[Code Check-in] --> B[Build Trigger]
    B --> C[Dependency Resolution]
    C --> D[Compilation]
    D --> E[Testing]
    E --> F[Packaging]
    F --> G[Verification]
    G --> H[Installation/Deployment]
    H --> I[Notification]


Example

Here, we will create a maven project by using Spring Initilizer with required dependencies.

Step 1: Dependency Declaration

First, we created a maven project by using required dependencies. Add these dependencies to the pom.xml file.

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


Project Structure:

Folder Structure


Step 2: Project Setup

Create a Maven project using Spring Initializr and navigate to the project folder in the command prompt by using CD command.

Redirected to Project Folder

Here the build is the project name. After this run the maven commands to build the project.

Step 3: Run the Maven Commands

1. Now run the below command to validate the maven project.

mvn validate

Output:

mvn validate


2. Once project validation is successful then compile the maven project.

mvn compile

Output:

mvn compile


3. Once maven project compiled successfully, then test the project by using test command.

mvn test

Output:

mvn test


4. Now package the maven project into JAR or WAR file format by using below maven command.

mvn package

Output:

mvn package


5. Now verify the integration test of maven project.

mvn verify

Output:

mvn verify


Maven Build Successfully:

Build Success


6. Now run maven install command to install into local repository.

mvn install

Output:

mvn install


7. Once every things completed, Then ready to production by running the deploy maven command.

mvn deploy

Output:

mvn deploy


Maven Build Successfully:

Build Successfully


Conclusion

Maven and build automation tools are indispensable in modern software development. They streamline the build process, enhance productivity, and ensure consistent and reliable software delivery. By automating repetitive tasks and managing dependencies effectively, these tools empower developers to focus on coding, resulting in higher-quality software and faster release cycles.



Next Article
Article Tags :

Similar Reads