<maven.compiler.source>1.5</maven.compiler.source> <maven.compiler.target>1.5</maven.compiler.target> <commons.module.name>org.apache.commons.functor</commons.module.name>
JDK 9 cannot generate or parse class files compiled with -target 1.5 [1]. Per the JPMS Armistice talks, "Automatic-Module-Name" header should only be added to jars that have been tested under JDK 9 [2]. Also, javac now supports the new "--release" argument as an alternative to source + target. Roughly speaking, this option combines -source & -target with a little bit of animal sniffing. JDK 9 includes signatures for JDK 6,7,8, and 9 (i.e. all the releases which jdk9 can compile for). This option is supported by maven-compiler-plugin [4] via a <release> element in the plugin configuration, or by settting the property *maven.compiler.release* . Simon [1] https://bugs.openjdk.java.net/browse/JDK-8011044 [2] http://openjdk.java.net/projects/jigsaw/spec/minutes/2017-05-18#AutomaticModuleNames--ModuleNameInManifest [3] http://openjdk.java.net/jeps/247 [4] https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#release