Menu

Showing posts with label Maven goals. Show all posts
Showing posts with label Maven goals. Show all posts

Maven Build Lifecycle

There are three out-of-the-box/implicit build lifecycles that Apache Maven provides: clean, default and site. The clean lifecycle handles project cleaning, while the default(install) lifecycle handles your project deployment, and the site lifecycle handles the creation of your project's website. You can read more detail of these Lifecycle phases of Maven Site.

No goals have been specified for this build

When we started a maven project without setting the run goal then the Maven build will get failed and generate the below error "No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]". 

In this case, we have to set the maven goal e.g. clean install to successfully build and run the project or application. 

Resolution

If you are running using IDE then please set the command line as mentioned below and restart the build. To set the command line with IntelliJ, please go to Run >> Edit Configurations >> Select your project >> Select Parameters tab from left >> put clean install in command line field.

Now rerun the maven build.


Error while running the Maven project.

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.882 s
[INFO] Finished at: 2021-06-09T07:28:32+05:30
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException

Process finished with exit code 1

maven commands/phases

Maven Lifecycle Phases: Phases are actually mapped to underlying goals. The specific goals executed per phase is dependent upon the packaging type of the project. So when we try to build and compile our code using mvn command then along with mvn we pass certain goal as well which actually perform the task which we want to perform.
e.g. 

mvn validate

Maven validate goal is to validate the project structure and all necessary entries.

mvn compile

Maven compile is to compile the code.

mvn package

Maven package is to package the compile  project into a deploy-able or attributable file JAR. We can also package the required dependencies using the package command.

mvn install

Maven install phases is to build and deploy the project in your local machine.

mvn deploy

maven deploy is to deploy the project on remote server and repository to share the project with other team and developer. generally we do when we wants to move final release deployment from lower environment to UAT/prod or transporting the release from one environment to another.

mvn test

Test the compiled project code with written unit test cases. This will not deploy or package your project.

mvn verify

Run this phase to verify that the created package is valid and met all the criteria.

mvn integration-test

process and deploy the package of the code in the environment where integration testing need to perform.

mvn clean

Remove the old package, artifacts and take a fresh build then create a new package of project code.

mvn site

Generate site documentation for the project. We can find the generated documents under target directory.

References: