Maven Project Build Phases

Q

What are Maven project build phases?

✍: FYIcenter.com

A

The Maven project build lifecycle has 8 phases:

  • validate - Validate the project is correct and all necessary information is available
  • compile - Compile the source code of the project
  • test - Test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
  • package - Take the compiled code and package it in its distributable format, such as a JAR.
  • integration-test - Process and deploy the package if necessary into an environment where integration tests can be run
  • verify - Run any checks to verify the package is valid and meets quality criteria
  • install - Install the package into the local repository, for use as a dependency in other projects locally
  • deploy - Done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

You can use the phase name as the Maven command: "mvn validate | compile | test | package | integration-test | verify | install | deploy" to drive your project from the frist phase to the given phase.

You can modify the App.java code by changing the output string:

C:\fyicenter>cd hello

C:\fyicenter\hello>type src\main\java\com\fyicenter\App.java

package com.fyicenter;

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

Then try the following Maven phase commands:

C:\fyicenter\hello>\fyicenter\apache-maven-3.5.4\bin\mvn validate
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------ com.fyicenter:hello >-------------------------
[INFO] Building hello 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.160 s
[INFO] ------------------------------------------------------------------------

C:\fyicenter\hello>\fyicenter\apache-maven-3.5.4\bin\mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------ com.fyicenter:hello >-------------------------
[INFO] Building hello 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hello ---
[INFO] skip non existing resourceDirectory C:\fyicenter\hello\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ hello ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\fyicenter\hello\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.611 s
[INFO] ------------------------------------------------------------------------

C:\fyicenter\hello>\fyicenter\apache-maven-3.5.4\bin\mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------ com.fyicenter:hello >-------------------------
[INFO] Building hello 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hello ---
[INFO] skip non existing resourceDirectory C:\fyicenter\hello\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ hello ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ hello ---
[INFO] skip non existing resourceDirectory C:\fyicenter\hello\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ hello ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ hello ---
[INFO] Surefire report directory: C:\fyicenter\hello\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.fyicenter.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.017 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.256 s
[INFO] ------------------------------------------------------------------------

 

"mvn clean" - Compile Maven Project

"maven-archetype-quickstart" - Default Java Code

Using Apache Maven

⇑⇑ FAQ for Apache Maven

2018-10-31, 158👍, 0💬