Search code examples
javamavenjenkinscompatibilitysemantic-versioning

Detect an incompatible API change without version change


I'm using semantic versioning on a Java - Maven - Jenkins project and accordingly, whenever an incompatible API change is done, the major version of the product should be changed. I'm looking for an automated way to detect such a change, so that the maven build would fail if it happened (or even automatically increase the version). Googling has me on the track of writing my own maven enforcer plugin rule, but I want to ask if anybody knows about any tool that can help (Jenkins plugin or similar would also work).


Solution

  • A year has passed but I hope this can help someone in the future. Based on the comment by wemu, I found this:

    Clirr

    Java API Compliance Checker

    Revapi (Supports Java 8)

    japicmp (Supports Java 8)