You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Mihai Nita (Jira)" <ji...@apache.org> on 2023/09/15 06:06:00 UTC

[jira] [Created] (MCOMPILER-545) maven.compiler.target seem to be ignored

Mihai Nita created MCOMPILER-545:
------------------------------------

             Summary: maven.compiler.target seem to be ignored
                 Key: MCOMPILER-545
                 URL: https://issues.apache.org/jira/browse/MCOMPILER-545
             Project: Maven Compiler Plugin
          Issue Type: Bug
    Affects Versions: 3.11.0
            Reporter: Mihai Nita


Create a very simple maven project:
{code:java}
mvn archetype:generate \
  -DgroupId=com.mycompany.app \
  -DartifactId=my-app \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DarchetypeVersion=1.4 \
  -DinteractiveMode=false{code}


See the guide at "Maven in 5 Minutes"
[https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html]
 
Change folder:
{code:java}
cd my-app {code}


Edit the `pom.xml` and change the JDK version to 8 (the newly created project uses 7):
{code:java}
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> {code}
Compile:
{code:java}
mvn clean compile {code}


Check the version of the class file generated:
{code:java}
javap -v target/classes/com/mycompany/app/App.class | grep "major version"{code}


If you compile with various jdk versions you will get different results: * JDK 8 => major version: 52
 * JDK 11 => major version: 55
 * JDK 17 => major version: 61



So this is not work as one would expect (and as documented).

It looks like a bug in the {{{}maven-compiler-plugin{}}}.
 
The behavior is the same even if we update the plugin to latest version (3.11.0).
(the app generated by the archetype uses 3.8.0, so the bug is not new)

Or if we use `8` for the version (instead of `1.8`).
[https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-release.html]
 
Changing the version *works* if specified in the plugin using {{<configuration>}} in {{{}<plugin>{}}}.
[https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html]
 
This show that {{maven.compiler.target}} does not work.
I suspect (but didn't test) that is also true for {{maven.compiler.source}}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)