Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven execution plan

Tags:

maven

alm

I have a long build with numerous steps, plugins and executions configured in roughly 30 poms belonging to a complex modularized project. As the build is taking too much (2h) I'd like to streamline it a bit, for which I'd like maven to list me all the steps it would go through without executing it. Something like:

$ mvn --dry-run clean
[INFO] Reactor Build Order:
[INFO] 
[INFO] Main project
[INFO] Module#1
[INFO] Module#2
[..]
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Main Project
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ main ---
[INFO] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Module#1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ module1 ---
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0:01.020s
[INFO] Finished at: Thu Apr 26 09:56:14 CEST 2012
[INFO] Final Memory: 198M/379M
[INFO] ------------------------------------------------------------------------

Is there any way to have such information without me digging in a couple of megs of a log file?

like image 501
skuro Avatar asked Apr 26 '12 10:04

skuro


1 Answers

As there's apparently no OOTB way to do it, I ended up writing the plan-maven-plugin. It allows you to unroll the plan providing the goals parameter:

mvn plan:plan -Dgoals=clean,javadoc:jar,sources:jar,package,gpg:sign,install

or to execute it as part of the normal build:

mvn plan:plan clean javadoc:jar sources:jar package gpg:sign install

Sample output:

$ mvn plan:plan clean javadoc:javadoc package install site:site
[...]
[INFO] --- plan-maven-plugin:1.1:plan (default-cli) @ plan-maven-plugin ---
[INFO]
[INFO] Current lifecycle:
[INFO]     pre-clean
[INFO]     clean
[INFO]     post-clean
[INFO]     validate
[INFO]     initialize
[INFO]     generate-sources
[INFO]     process-sources
[INFO]     generate-resources
[INFO]     process-resources
[INFO]     compile
[INFO]     process-classes
[INFO]     generate-test-sources
[INFO]     process-test-sources
[INFO]     generate-test-resources
[INFO]     process-test-resources
[INFO]     test-compile
[INFO]     process-test-classes
[INFO]     test
[INFO]     prepare-package
[INFO]     package
[INFO]     pre-integration-test
[INFO]     integration-test
[INFO]     post-integration-test
[INFO]     verify
[INFO]     install
[INFO]     deploy
[INFO]
[INFO] Execution plan:
[INFO]     [-] tk.skuro:plan-maven-plugin:plan (default-cli)
[INFO]     [clean] org.apache.maven.plugins:maven-clean-plugin:clean (default-clean)
[INFO]     [-] org.apache.maven.plugins:maven-javadoc-plugin:javadoc (default-cli)
[INFO]     [validate] org.apache.maven.plugins:maven-enforcer-plugin:enforce (enforce-maven)
[INFO]     [generate-resources] org.apache.maven.plugins:maven-plugin-plugin:descriptor (default-descriptor)
[INFO]     [process-resources] org.apache.maven.plugins:maven-resources-plugin:resources (default-resources)
[INFO]     [compile] org.apache.maven.plugins:maven-compiler-plugin:compile (default-compile)
[INFO]     [process-test-resources] org.apache.maven.plugins:maven-resources-plugin:testResources (default-testResources)
[INFO]     [test-compile] org.apache.maven.plugins:maven-compiler-plugin:testCompile (default-testCompile)
[INFO]     [test] org.apache.maven.plugins:maven-surefire-plugin:test (default-test)
[INFO]     [package] org.apache.maven.plugins:maven-jar-plugin:jar (default-jar)
[INFO]     [package] org.apache.maven.plugins:maven-plugin-plugin:addPluginArtifactMetadata (default-addPluginArtifactMetadata)
[INFO]     [validate] org.apache.maven.plugins:maven-enforcer-plugin:enforce (enforce-maven)
[INFO]     [generate-resources] org.apache.maven.plugins:maven-plugin-plugin:descriptor (default-descriptor)
[INFO]     [process-resources] org.apache.maven.plugins:maven-resources-plugin:resources (default-resources)
[INFO]     [compile] org.apache.maven.plugins:maven-compiler-plugin:compile (default-compile)
[INFO]     [process-test-resources] org.apache.maven.plugins:maven-resources-plugin:testResources (default-testResources)
[INFO]     [test-compile] org.apache.maven.plugins:maven-compiler-plugin:testCompile (default-testCompile)
[INFO]     [test] org.apache.maven.plugins:maven-surefire-plugin:test (default-test)
[INFO]     [package] org.apache.maven.plugins:maven-jar-plugin:jar (default-jar)
[INFO]     [package] org.apache.maven.plugins:maven-plugin-plugin:addPluginArtifactMetadata (default-addPluginArtifactMetadata)
[INFO]     [install] org.apache.maven.plugins:maven-install-plugin:install (default-install)
[INFO]     [-] org.apache.maven.plugins:maven-site-plugin:site (default-cli)
[INFO]
like image 190
skuro Avatar answered Nov 10 '22 06:11

skuro