I want to measure API evolution for a given Java project, in particular new/renamed classes, new methods, newly deprecated methods, etc. Is there a tool that detect such changes?
Back in 2007, a Google GSoc project was initiated, however, I cannot find the final work.
I'd use Clirr for that, a binary compatibility checker. From the Clirr web site:
What is it?
Clirr is a tool that checks Java libraries for binary and source compatibility with older releases. Basically you give it two sets of jar files and Clirr dumps out a list of changes in the public api. The Clirr Ant task can be configured to break the build if it detects incompatible api changes. In a continuous integration process Clirr can automatically prevent accidental introduction of binary or source compatibility problems.
...
Features
- Report all API changes (currently only partially implemented)
- Evaluate each change wrt. binary and source compatibility
- support plain text and XML reports
- Flexible failure handling (warnings vs. errors, break the build or set error property)
There's also a new API evolution checking tool called Revapi
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With