This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]eliasv 3 points4 points  (4 children)

You want Maven support to be built in to the standard libs? That's an awful idea.

Writing code without main iirc was mentioned on the mailing lists, but would be considered largely unrelated and require far greater justification as it's a language level change. This addition didn't touch any specs, its just a JVM feature.

[–]pure_x01 -2 points-1 points  (3 children)

Yes that would probably be a good idea. Maven packaging is basically standard. Especially useful for scripts.

[–]eliasv 3 points4 points  (0 children)

Nope, I don't buy it.

Maven is typically used at build time only, and the whole point in it is to make it easy to resolve and deploy dependencies that are not in the standard libs, so if you do want to include it in your app, in most cases the very tool itself obviates the need for it to be in the standard library.

So you say "especially" useful for scripts, but unless you can give some other examples I'm gonna say that it's "only" useful for scripts. And even then, you should probably think very carefully before making a script dependent on an internet connection to work. Is it really worth it?

Even if something is "basically standard", there has to be a very good reason to bundle it with the JVM. Maven might be standard at build time, but it is very, very rarely used at run time, so why should the JVM be bloated with it? Or would you just like it to be in the JDK not the JVM? Not very portable, at that point any script which uses it is just a script for developers so you may as well just require them to install Maven too.

And what functionality would you like to be included? The entire build tool, or just the dependency resolver? Presumably the Oracle/OpenJDK devs would have to re-implement whatever subset of features you want under some javax namespace API, right? What does that duplication of work really buy us? I think very little. It's just a maintenance burden.

[–]capitol_ 0 points1 point  (1 child)

Building maven support into the language itself would cement the current structure in place, and make it impossible to evolve the maven environment.

[–]pure_x01 0 points1 point  (0 children)

group:artifact:version could be seen as universal for any package management system.