J2cl-maven-plugin 0.21.0 release announcement

Vertispan LLC, Colin Alworth

Today we've released a new version of the j2cl-maven-plugin, 0.21.0. This should be the final release that depends on our own tagged version of J2CL, as going forward we hope to see periodic tagged releases of J2CL itself. This is also the first release that is able to not only incrementally build based on dependencies and project structure, but also able to detect changes to files and incrementally build within a given maven module as well. As one additional note, this release no longer supports running on Java 8, the minimum Java version is 11 going forward.

To get started right away, update your plugin to

<groupId>com.vertispan.j2cl</groupId>
<artifactId>j2cl-maven-plugin</artifactId>
<version>0.21.0</version>

and ensure any J2CL dependencies use version 0.11.0-9336533b6 such as junit-emul and junit-annotations:

<groupId>com.vertispan.j2cl</groupId>
<artifactId>junit-emul</artifactId>
<version>0.11.0-9336533b6</version>
<groupId>com.vertispan.j2cl</groupId>
<artifactId>junit-annotations</artifactId>
<version>0.11.0-9336533b6</version>

Incremental builds

While previous versions of this plugin took care to never rebuild a module or dependency that didn't change, this update goes further and introduces new APIs for tasks to use to detect changes to their dependencies or source inputs since the last successful build, and only compiled based on what has changed. A few tasks have been updated to support this, with more expected in the next few releases.

This is presently disabled by default, to let adventurous users try it today, but will be enabled in future releases after we're more confident in the performance benefits, ensured its stability. To turn this on for your own project, set <incrementalEnabled>true</incrementalEnabled> in your plugin configuration, or set the property j2cl.incremental true globally.

Minimum Java version 11

In order to support upstream changes in J2CL, Closure-Compiler, and Turbine, support for Java 8 has been dropped. Going forward, in order to run this plugin, Java 11+ is required.

Newer (but not new) J2CL and Closure-Compiler versions

A newer version of J2CL and Closure-Compiler is used in this release. It isn't the latest version today, but it is substantially newer than the previous release of this plugin - this should improve stability and performance overall.

Expect a new release in the near future which updates to latest versions of these dependencies.

Go get it!

If you have any questions or problems please join us to chat at https://matrix.to/#/#vertispan_j2cl:gitter.im, file an issue at https://github.com/Vertispan/j2clmavenplugin/issues/, or start a discussion at https://github.com/Vertispan/j2clmavenplugin/discussions.