Creating a Maven report plugin -


i'm trying build custom report plugin maven, used mvn site.

but can't find updated documentation on how proceed.

official documentation creating plugin mentions extending org.apache.maven.plugin.abstractmojo. "regular" plugins usual build lifecycle. it's not site build lifecycle.

there similar question on (writing maven custom report plugin; how generate html body or "middle" of report?) refers document 2015, mentions abstractmavenreport class instead of abstractmojo class, can't find anywhere imported in project.

i looked @ code of recent report plugins (the changes plugin here: http://svn.apache.org/viewvc/maven/plugins/tags/maven-changes-plugin-2.12.1/), can't find i'm looking for.

isn't there @ least archetype report plugins? has experience in this?

thank you! -- bertrand

a bit more digging , found answer: http://maven.apache.org/shared/maven-reporting-impl/index.html

and working example: http://svn.apache.org/viewvc/maven/shared/tags/maven-reporting-impl-3.0.0/src/it/setup-reporting-plugin/

so, basically, you'll need in pom.xml:

  <dependencies>     <dependency>       <groupid>org.apache.maven.reporting</groupid>       <artifactid>maven-reporting-impl</artifactid>       <version>@project.version@</version>     </dependency>     <dependency>       <groupid>org.apache.maven.reporting</groupid>       <artifactid>maven-reporting-api</artifactid>       <version>3.0</version>     </dependency>      <!-- plugin api , plugin-tools -->     <dependency>       <groupid>org.apache.maven</groupid>       <artifactid>maven-plugin-api</artifactid>       <version>3.0.5</version>     </dependency>     <dependency>       <groupid>org.apache.maven.plugin-tools</groupid>       <artifactid>maven-plugin-annotations</artifactid>       <version>3.3</version>       <scope>provided</scope>     </dependency>      <dependency>       <groupid>org.apache.maven.shared</groupid>       <artifactid>maven-shared-utils</artifactid>       <version>0.7</version>     </dependency>   </dependencies> 

and then, main class has extend abstractmavenreport:

import java.util.locale; import org.apache.maven.plugins.annotations.mojo; import org.apache.maven.reporting.abstractmavenreport; import org.apache.maven.reporting.mavenreportexception;  /**  * typical code copy reporting plugin start: choose goal name, implement getoutputname(),  * getname( locale ), getdescription( locale ) , of course executereport( locale ).  */ @mojo( name = "custom" ) public class customreport     extends abstractmavenreport {     public string getoutputname()     {         return "custom-report";     }      public string getname( locale locale )     {         return "custom maven report";     }      public string getdescription( locale locale )     {         return "custom maven report description";     }      @override     protected void executereport( locale locale )         throws mavenreportexception     {         // direct report generation using doxia: compare customreportrenderer see benefits of using         // reportrenderer         getsink().head();         getsink().title();         getsink().text( "custom report title" );         getsink().title_();         getsink().head_();          getsink().body();          getsink().section1();         getsink().sectiontitle1();         getsink().text( "section" );         getsink().sectiontitle1_();          getsink().text( "custom maven report content." );         getsink().section1_();          getsink().body_();     } } 

hope future developers of maven plugins! ;-)


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -