Hi,

While working on creating multi module configuration for commons-rng
component I've extracted all configurations for maven plugins such as: pmd,
findbugs, checkstyle into separate module "commons-rng-build-tools". Such
that parent project can now refer to it within build plugins section and
will imply it for all modules reducing the need to repeat it for each
module again (or copy same files into new modules).

Now I think that it could be beneficial to have this "build-tools" common
component across all Apache Commons, so it will provide same configurations
for checkstyle, pmd and etc at once.

For example configuration of pmd could look something like:

<build>
<plugins>
<plugin>
  <artifactId>maven-pmd-plugin</artifactId>
  <version>${pmd.version}</version>
  <configuration>
    <targetJdk>${maven.compiler.target}</targetJdk>
    <skipEmptyReport>false</skipEmptyReport>
    <rulesets>
      <ruleset>pmd/pmd-ruleset.xml</ruleset>
    </rulesets>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-build-tools</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
  </dependencies>
</plugin>
</plugins>
</build>

And reporting section:

<reporting>
<plugins>
<plugin>
  <artifactId>maven-pmd-plugin</artifactId>
  <version>${pmd.version}</version>
  <configuration>
    <targetJdk>${maven.compiler.target}</targetJdk>
    <skipEmptyReport>false</skipEmptyReport>
    <rulesets>
      <ruleset>pmd/pmd-ruleset.xml</ruleset>
    </rulesets>
  </configuration>
  <reportSets>
    <reportSet>
      <reports>
        <report>pmd</report>
        <report>cpd</report>
      </reports>
    </reportSet>
  </reportSets>
</plugin>
</plugins>
</reporting>

At some sense this will be similar to "commons-parent", while keeping only
configuration resources for report generating plugins and for static
analysis tools.

WDYT?

PS. There is temporal example within "commons-rng" git repo inside
"multimodule" branch.

Best regards,
                      Artem Barger.

Reply via email to