Robert Muir created LUCENE-4409:
-----------------------------------
Summary: implement javadocs linting with eclipse ecj compiler
Key: LUCENE-4409
URL: https://issues.apache.org/jira/browse/LUCENE-4409
Project: Lucene - Core
Issue Type: Task
Components: general/build
Reporter: Robert Muir
today we have a lot of custom python scripts checking javadocs (checking for
missing stuff too).
Most of this is implemented by parsing html etc (some of this should stay this
way, like broken-link detection)
But actually the eclipse compiler can do most of this type of linting, and has
a lot of options for it. We can pull it via ivy and run it from the
command-line.
I tested this manually by adding a bogus throws clause to Codec.java,
downloading the ecj.jar from maven and running it manually:
{noformat}
rmuir@beast:~/workspace/lucene-trunk/lucene/core/src/java$ java -cp
~/Downloads/ecj-3.7.2.jar org.eclipse.jdt.internal.compiler.batch.Main -source
1.6 -d none -enableJavadoc -properties
~/workspace/lucene-trunk/dev-tools/eclipse/.settings/org.eclipse.jdt.core.prefs
.
...
----------
120. ERROR in
/home/rmuir/workspace/lucene-trunk/lucene/core/src/java/./org/apache/lucene/codecs/Codec.java
(at line 59)
* @throws IOException */
^^^^^^^^^^^
Javadoc: Exception IOException is not declared
----------
{noformat}
here i specified -d none (don't generate class files), and essentially told it
to read the compiler warnings/errors options set in the dev-tools config. For
javadocs-lint we would want our own separate properties file that disables the
ordinary java warnings (because eclipse can warn/error/ignore on lots of
things, not just javadocs, and does by default).
Separately we could also use this to check/fail/warn on other things besides
javadoc...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]