TL;DR: Checkstyle has now been re-enabled on master and will run
automatically in the validate phase of the Maven build. [1]
For those with 5min to spare, here some more details on what the
problem was here and how the PR addresses it:
As you probably all know, the project POM [2] is the ultimate
"top-level" POM for all jclouds projects - not just those in
jclouds/jclouds, but also in downstream repos such as labs or
labs-openstack. It contains the "default" build settings to be used by
all projects.
Part of those default settings are Checkstyle and, now, Modernizer
plugin invocations. These require configuration files in the resources
project. In order for downstream repos to be able to access these
files, the default configuration for Checkstyle and Modernizer is to
depend on the jclouds-resources JAR, which bundles up the necessary
config.
This works fine for pretty much all projects, but creates two problems:
1. It introduces a cyclic dependency project -> resources (through the
plugins) -> project (because resources inherits from project)
2. It introduces a self-dependency in resources
1. is addressed in the following way: the default configuration in the
project POM is actually split into all the stuff in <build> [3] *and
the settings in the "not-jclouds-project" profile* [4]. There is
another profile, "jclouds-project" [5], that contains build settings
specific to jclouds-project itself, i.e. settings that are *not* to be
inherited by downstream projects. This profile configures the
Checkstyle and Modernizer plugins to use local file references, rather
then dependencies, to access the config files.
2. is addressed by overriding the inherited configuration in the
resources POM [6] to, again, reference local files rather than
dependencies. For some reason, this seems to work, even though 'mvn
help:effective-pom' still lists the plugins as having the dependencies.
The takeaway here is: if you want to add dependencies to the project
POM that are built in a jclouds project, please ensure the project
that *provides* those dependencies is configured in such a way as to
avoid circular deps.
Regards
ap
[1] https://github.com/jclouds/jclouds/pull/551
[2] https://github.com/jclouds/jclouds/blob/master/project/pom.xml
[3] https://github.com/jclouds/jclouds/blob/master/project/pom.xml#L351-L944
[4] https://github.com/jclouds/jclouds/blob/master/project/pom.xml#L1096-L1142
[5] https://github.com/jclouds/jclouds/blob/master/project/pom.xml#L1054-L1095
[6] https://github.com/jclouds/jclouds/blob/master/resources/pom.xml#L44-L67