Hi,
we'd like to be able to run Maven on a wide range of Java versions, the
more the better.
Currently Maven can be built and executed with Java 7 up to Java 13-ea.
Looking back at some history of the minimum required version of Java to
run Maven you'll see that once Java 1.7 was EOL we started to make that
the new minimum version.
Moving to a newer version is more than upgrading the source/target. In
such case you're kind of fooling yourself.
In case of upgrading to Java 1.7 it means you should apply at least a few
of the following:
- try-with-resources
- multi-catch block
- diamond operator
- String switch statements
- NIO 2.0
In case of Java 8 we should do the same and that's a huge task.
The Maven project is maintained by quite a small group of volunteers.
We still get new issues every day and the list just keeps growing[1]
Every committer picks his own issues and most of the time these are about
bugs, improvements or new features.
Maintenance like applying new syntax features to the code has not a high
priority.
If you search through the dev-mailinglist you'll find discussion about
when to move to Java 8 and how.
So the simple answer is: focus is on other issues.
thanks,
Robert
[1]
https://cwiki.apache.org/confluence/display/MAVEN/Maven+JIRA+issues+overview
On Wed, 31 Jul 2019 16:23:31 +0200, <[email protected]> wrote:
Dear Developers,
we are members of the ZEST research group (Zurich Empirical Software
Engineering Team) based at the University of Zurich and the Delft
University of Technology. We are conducting an investigation on the
diffusion of innovations and we focus on the adoption of new language
features. Our research is focused on how API producers adapt their
interfaces to introduce support for Java 8’s lambdas. During the course
of our investigation, we manually inspected maven-plugin-api,
maven-core, maven-artifact, and maven-model’s source code and
documentation to understand whether Java’s lambdas have widespread
adoption. We would like to have your feedback on our findings.
Our study focuses primarily on Functional Interfaces and Lambda
Expressions as these new features were introduced by the Java language
and adopted the Java JDK API, as they reduce implementation complexity,
improve readability, offer performance benefits and improve security
contextualization.
Our analysis showed that maven-plugin-api, maven-core, maven-artifact,
and maven-model did not introduce compatibility with Java 8+ features,
including Functional Interfaces and Lambda Expression. We would like to
better understand as to why these APIs do not support newer Java
language versions and their features.
Our investigation showed us that in most cases API producers do not
migrate their APIs to newer Java Releases. Despite this, the API remains
to be widely used by consumers on GitHub. Can you provide us with more
information on this phenomenon?
Did you and your team ever discuss the migration to new Java releases?
If so, what did this discussion entail?
What is the reason behind not migrating to a newer Java version?
Did the introduction of new language features such as lambda expressions
influence your decision in any way?
Does your API plan on introducing support for lambda expressions in the
future?
We thank you for taking the time to answer our questions. If you would
like to be posted about the results of this study, please let us know!
Kind Regards,
Fernando Petrulio.
[photo-logo]
Fernando Petrulio
Ph.D. Student University of Zurich UZH
Department of Informatics
[linkedin] https://www.linkedin.com/in/fernando-petrulio
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]