Skip to content


Repository files navigation


Maven Central Maven Central (snapshot) Codecov Java Version


JVM Platform Status
OpenJDK (Temurin) Current Linux Build (OpenJDK (Temurin) Current, Linux)
OpenJDK (Temurin) LTS Linux Build (OpenJDK (Temurin) LTS, Linux)
OpenJDK (Temurin) Current Windows Build (OpenJDK (Temurin) Current, Windows)
OpenJDK (Temurin) LTS Windows Build (OpenJDK (Temurin) LTS, Windows)


A trivial command-line wrapper around japicmp.


  • Simple command-line tool for checking jar version changes.
  • Compare jar files for semantic versioning conformance.
  • Compare Android aar files for semantic versioning conformance.
  • Powered by japicmp.
  • High-coverage automated test suite.
  • ISC license.


$ mvn clean verify


Usage: scando [options]
      A file containing a list of package/class exclusions
      Display this help message
  * --htmlReport
      The output file for the HTML report
      Trivially succeed if the old jar is missing.
      Default: false
  * --newJar
      The new jar file
  * --newJarVersion
      The new jar version
  * --oldJarUri
      The old jar/aar file/URI
  * --oldJarVersion
      The old jar version
  * --textReport
      The output file for the plain text report

$ java -jar \
  com.io7m.scando.cmdline-0.0.1-main.jar \
  --oldJarUri \
  --newJar com.io7m.jtensors.core-9.0.0.jar \
  --oldJarVersion 7.1.0 \
  --newJarVersion 7.2.0 \
  --textReport report.txt \
  --htmlReport report.html
INFO: Text report written to report.txt
INFO: HTML report written to report.html
ERROR: Version change between 7.1.0 and 7.2.0 is MINOR, but the changes made to code require a MAJOR version change

$ echo $?

The --excludeListparameter, if specified, gives the path of a file containing one exclude pattern per line. Empty lines, and lines starting with #are ignored. See japicmp for the syntax of exclude patterns.

The --ignoreMissingOld parameter, if specified, allows for ignoring a missing "old" jar. This is useful when, for example, a new module is added to a project.