I might have started something... 🤭

#java17 #java21 @ASFMavenProject

Apache Maven 4 might require Java 17...

@infosec812
Thanks! Depending on the time line of Maven 4, we even might bump it to Java 21... But that's nowhere near final, only single voices so far.

The biggest problem is actually to explain that:
1. Maven 3.9.x will work for a while
2. Even with Maven on JDK21, you can still use -release=7
3. Even with Java 22, you can use toolchains to build with just any JDK.

@ASFMavenProject @sparsick

@infosec812
We call those people "aligners" - those who want to align the Maven runtime with the compiler and the target runtime.

Often there's little to no advantage in that.

@ASFMavenProject @sparsick

@bmarwell
Re 2: No you can't (without using another JDK <20 via toolchains). https://inside.java/2022/09/26/quality-heads-up/

@infosec812 @ASFMavenProject @sparsick

Quality Outreach Heads-up - JDK 20 - Support for 1.7 source and target removed from javac – Inside.java

This Heads-Up is part of the regular communication sent to the projects involved, it covers a change in javac in JDK 20 …

@joschi @bmarwell @infosec812 @ASFMavenProject @sparsick JDK 21 supports --release 8 but already with WARNINGs... Java 7 is not supported anymore ...

@khmarbaise
You're both right, JDK17 is last which supports seven.

Still good enough and nowhere near a blocker imo.

@joschi @infosec812 @ASFMavenProject @sparsick

×

I might have started something... 🤭

#java17 #java21 @ASFMavenProject

Apache Maven 4 might require Java 17...

@infosec812
Thanks! Depending on the time line of Maven 4, we even might bump it to Java 21... But that's nowhere near final, only single voices so far.

The biggest problem is actually to explain that:
1. Maven 3.9.x will work for a while
2. Even with Maven on JDK21, you can still use -release=7
3. Even with Java 22, you can use toolchains to build with just any JDK.

@ASFMavenProject @sparsick

@infosec812
We call those people "aligners" - those who want to align the Maven runtime with the compiler and the target runtime.

Often there's little to no advantage in that.

@ASFMavenProject @sparsick

@bmarwell
Re 2: No you can't (without using another JDK <20 via toolchains). https://inside.java/2022/09/26/quality-heads-up/

@infosec812 @ASFMavenProject @sparsick

Quality Outreach Heads-up - JDK 20 - Support for 1.7 source and target removed from javac – Inside.java

This Heads-Up is part of the regular communication sent to the projects involved, it covers a change in javac in JDK 20 …

@joschi @bmarwell @infosec812 @ASFMavenProject @sparsick JDK 21 supports --release 8 but already with WARNINGs... Java 7 is not supported anymore ...

@khmarbaise
You're both right, JDK17 is last which supports seven.

Still good enough and nowhere near a blocker imo.

@joschi @infosec812 @ASFMavenProject @sparsick

@bmarwell @ASFMavenProject If a project is still being developed today with #Java 7 or older and the maintainers do not want to switch to a newer Java version, I can hardly imagine that the maintainers will consider switching to #Maven 4. Therefore, the new major version of Maven, which will have incompatibilities anyway, would be a good opportunity to switch to the then current LTS as a minimum requirement.

@McPringle
> which will have incompatibilities anyway,

Actually, as long as you use 3.x-plugins only (and don't remove the version from the parent declaration), you can use both Maven 3 and 4 for the same project.

@ASFMavenProject

@bmarwell @ASFMavenProject For real world projects with dozens of plugins and a complex configuration I'm skeptical. Maybe I'll be positively surprised, but I plan for a lot of testing and incompatibilities.
@bmarwell @ASFMavenProject Congrats on the successful vote!
Looking forward to maven 4 on JDK 17+  #java #maven