Uploaded image for project: 'Maven Shared Components'
  1. Maven Shared Components
  2. MSHARED-1327

Change default value of output directory in AbstractMavenReport




      The output directory should default to ${project.build.directory} instead of ${project.reporting.outputDirectory}. Quoting my reasoning from https://github.com/apache/maven-jxr/commit/ae81a34ac616bf7e4ea4fa9d4eb09f0979eaccb1#commitcomment-130639906:

      (...) because the latter is simply wrong IMO. For stand-alone mojo execution, a plugin should not mess with Maven Site's default directory. Imagine a situation in which each module should get its own, self-consistent report when called stand-alone, but the site should contain an aggregate with a different structure or maybe no report from that plugin at all. The default would then pollute the site directory. This is why on the ML I asked you (michaelo), if overriding a @Parameter annotation on a base class field by another @Parameter annotation on a setter in a subclass it is the right or canonical way to implement such a default override.

      BTW, like I also said before, Maven Javadoc Plugin, even though it does not use the abstract base class, implements the default correctly: build dir for stand-alone, report dir in site generation context.

      The javadoc is, BTW, still correct and does not need to be changed: In a site generation context, the reporting base directory will be set here automatically without any further changes due to:

          public void setReportOutputDirectory(File reportOutputDirectory) {
              this.reportOutputDirectory = reportOutputDirectory;
              this.outputDirectory = reportOutputDirectory;


        Issue Links



              michael-o Michael Osipov
              kriegaex Alexander Kriegisch
              0 Vote for this issue
              4 Start watching this issue