Skip to content
smarkwal edited this page Mar 9, 2025 · 3 revisions

Version 3.0.0

Highlights

Generate HTML diff report

The command line options --diff <file> <file> can be used to create an HTML diff report between two JarHC reports.

Support custom Maven repositories

The command line options --repository-url, --repository-username, and --repository-password can be used to configure a custom Maven repository other than Maven Central.

New report section: JAR Manifests

List information extracted from META-INF/MANIFEST.MF files.

New report section: OSGi Bundles

Lists information about OSGi bundles found on the classpath.

Other changes

Application

  • The fat/uber JAR jarhc-<version>-with-deps.jar has been renamed to jarhc-<version>-app.jar.
  • The command line option --sort-rows is no longer supported. Table rows are now always sorted alphabetically.
  • The command line options --remove-version and --use-artifact-name are no longer supported.
  • The short command line options -v, -h, -r, -cp, -t, -s, and -o have been deprecated.
  • JarHC can load properties from ~/.jarhc.properties and ./jarhc.properties.
  • Artifact collections can be used to group and reuse a list of Maven coordinates.

Report

  • Merge sections "Packages" and "Class Versions" into "JAR Files".
  • "Dependencies" is now the second section after "JAR Files".
  • Merge section "JAR Dependencies" into "Dependencies".
  • Rename section "Modules" to "JPMS Modules".
  • "JAR Manifests", "JPMS Modules", and "OSGi Bundles" have been moved to the end.
  • Rename first column from "JAR file" to "Artifact".
  • Show artifact name instead of JAR file name in first column.
  • If Maven coordinates are unknown, try to guess artifact name and version from JAR file name.

JAR Files

  • Add new column "Version" with artifact version number.
  • Add new column "Source" with file name or artifact coordinates given as command line argument.
  • Rename column "Artifact coordinates" to "Coordinates".
  • If there are multiple artifacts with the same checksum, include them all in column "Coordinates". Prefer artifact coordinates given as command line argument.

Dependencies

  • Add column "Updates" with information about available updates for artifacts.
  • Prefer artifact coordinates given as command line argument.

Binary Compatibility

  • Validate "Main-Class" and "Class-Path" manifest attributes.

HTML report

  • Create HTML links to Maven Central for artifact coordinates.
  • Highlight code-like text with a different color.

JSON report

  • Support reports in JSON format.

Code

  • Migrate from Maven Aether to Maven Artifact Resolver.

Clone this wiki locally