This change is incorrect, binary compatibility was NOT broken as the JLS
specifies that:
"Changes to the throws clause of methods or constructors do not break
compatibility with pre-existing binaries; these clauses are checked only at
compile time."
See
https://docs.oracle.com/javase/specs/jls/se
I took the very useful Dockerfile from Alex and updated it to split
the Maven build into a separate script.
There are now two stages:
- create the build environment with all the necessary tools
- run Maven to build the various objects
The container uses the source (and Maven repo) from the host,