I have a set of Java 5 source files with old-style Doclet tags, comments and annotations. And based on that I would like to write a generator for another set of Java classes.
What is the best way to do that? And are there any good standalone libraries for code analysis/generation in Java? Any shared exprience in this field is appreciated.
So, far I have found these:
-
JaxME’s Java Source Reflection – seems good, but it does not seem to support annotations. Also it had no release since 2006.
-
Annogen – uses JDK’s Doclet generator, which has some bugs under 1.5 JDK. Also it had no releases for a long time.
-
Javaparser – seems good as well and pretty recent, but only supports Visitor pattern for a single class i.e. no query mechanism like in the 2 above packages.
Both the NetBeans IDE and Eclipse JDT projects have considerable Java code analysis/generation logic. I don’t know what their dependencies are (i.e., can you use them as standalone libs), but other than that, I would take a good look at those two: it’s unlikely there’s a java code analysis library under more intensive development and more up to date.
Update:
PMD might be of interest as well:
Additionally, this blog entry discusses various static code analysis tools.