Howdy,

>From recent discussions I see an interesting pattern: it seems that people
(even our PMCs) are using Maven in a way that is making sure that "same
Java version" (I guess vendor + version) is used from "beginning" to "end".

And "beginning" here means BUILDING (think workstations and CI and so on),
while "end" means PRODUCTION (deploying the stuff into production).

Why is that?

We all know that even before this "speedup" of Java releases (so to say, up
to Java 8) we did put extra effort into supporting this (running Maven on
different Java versions and producing another bytecode output). One can:
- use source/target compiler flags + animal sniffer (if on Java 8 or older)
- use release compiler flag (if Java9+ used)
- use toolchains

Why does any of these above "does not work" for those "aligning Java from
beginning to end"?

With today's tools like sdkman, jenv, homebrew, jbang, mvnw (and who knows
what) it is REALLY HARD to miss the automation of getting JDKs and tools
(and keeping them up to date!!!) on workstations and CIs (deployment not
counted here, but hopefully it is automated as well).

Another point is that upcoming Maven 4 has tremendous improvements
targeting toolchains.

Finally, a bit of digression, but very much related thing: as Niels
showcased on other thread in
https://github.com/nielsbasjes/ToolChainsInCiBuilds

The CI "matrix" build's Java version part can be moved into Maven itself.
Personally, I always hated "matrix" as they explode very easily (size wise)
but in MOST cases they really just "warm the oceans" (from HB) and do not
do anything useful. I do keep _matrix useful_ for OS variations, but to
rebuild the same commit over and over with Java8, Java11, Java17 only to
"be sure" it will work, is really an overkill (and very wasteful). The
added beauty of applying this pattern is that one can perform the whole
build and testing (using different Javas) even on their own workstations.

Does Maven miss some features (aside from those above) to make it possible
for those "aligning" Java versions to move?

Thanks
T

Reply via email to