I recently started a new JavaFX project. I decided to use Maven because the tool is great for building Java projects in a standard way that conforms with best practices. Unfortunately, I’m not the most well versed in the tool. I’ve used it a few times, and “it just worked”.
This evening I got the following errors when attempting to compile my project:
Source option 5 is no longer supported. Use 7 or later. Target option 5 is no longer supported. Use 7 or later.
I didn’t know what it meant, so I went to the Web. A search result later, I learned this had to do with the compiler. So I added the following directive to my pom.xml file.
<properties> <maven.compiler.source>13</maven.compiler.source> <maven.compiler.target>13</maven.compiler.target> </properties>
I’m using openjdk-13, so I told Maven that my source code (
compiler.source) would be written in Java 13; and that my output code (
compiler.target) should run on the Java 13 JVM.
If we were to compile directly on the command line, we could use
-target flags reach the same end, but I believe Maven leverages a
javax.tools.JavaCompiler object that enables invocation of the Java compiler from within programs. From what I can tell, it’s the Maven Compiler Plugin which uses such an object – hence, the