[
https://issues.apache.org/jira/browse/HBASE-11912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Purtell updated HBASE-11912:
-----------------------------------
Attachment: HBASE-11912.patch
Here's an updated patch that works with latest master.
Unfortunately we must avoid using error-prone, on a per-module basis, on the
default-compile or default-testCompile compiler execution (or both) where there
are generated protobuf sources. This is because generated protobuf code trips
an error-prone ERROR rule and <exclude> directives for the Maven compiler
plugin, from version 2.2 and higher will not prevent compilation of classes
within source directories _that are needed for successful compilation_ even if
they have been excluded.
We use error-prone + javac to compile module main and test sources in two
different phases, except:
- hbase-annotations: No code here
- hbase-assembly: No code here
- hbase-checkstyle: No code here
- hbase-native-client: No java code here
- hbase-protocol: Generated protobuf code trips error-prone ERROR rule
- hbase-rest: Generated protobuf code trips error-prone ERROR rule
- hbase-server: Main sources only. We exclude test code because generated
protobuf code trips error-prone ERROR rule
I think is as good as we can do until we switch to a custom version of
error-prone, which is the plan I think, since error-prone adds only marginal
value beyond FindBugs and Checkstyle unless we pursuing development of
additional plugins that flag new anti-patterns we agree are as such.
> Catch some bad practices at compile time with error-prone
> ---------------------------------------------------------
>
> Key: HBASE-11912
> URL: https://issues.apache.org/jira/browse/HBASE-11912
> Project: HBase
> Issue Type: Sub-task
> Reporter: Andrew Purtell
> Attachments: HBASE-11912.patch, HBASE-11912.patch, HBASE-11912.patch
>
>
> Google's error-prone (https://code.google.com/p/error-prone/) wraps javac
> with some additional static analysis that will generate additional warnings
> or errors at compile time if certain bug patterns
> (https://code.google.com/p/error-prone/wiki/BugPatterns) are detected. What's
> nice about this approach, as opposed to findbugs, is the compile time
> detection and erroring out prevent the detected problems from getting into
> the codebase up front.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)