Hi,
thanks for your quick answer.
Generally, I don't want to do that. On the one hand, I would like for
Maven to simply use the latest version of the maven-compiler-plugin that is
available (the default behaviour).
Not the default behaviour any more.... at least since 2.0.9 IIRC... the
"core" plugins all have a version specified in the über-pom that is
embedded within Maven. Thus if you do not specify a version, you get the
version specified in the über-pom... for non-core plugins you will get the
latest, but your build is now irreproducible. Best practice is to specify
the version for all plugins.
Yes, I can see how specifying a version of the maven-compiler-plugin to
use would be a good thing to do in order to make the build reproducible.
It's a "never change a winning team" sort of paradigm, and one I'm not
opposed to at all. Yet, please do note that the generated pom.xml from
the archetype maven-archetype-quickstart does *not* specify a
maven-compiler-plugin version to use. So does this imply that the
maven-archetype-quickstart archetype actually does not conform to the
"best practice" to do things?
So, maybe I wasn't entirely clear. What really kind of surprises me is
not that I have to specify a maven-compiler-plugin version per se. What
suprises me is more this "if you configure this, you also have to
configure that" thing. If I only want to change the default
configuration w.r.t. the Java version I would like to use, why do I also
have to change the default configuration w.r.t. the
maven-compiler-plugin version I want to use?
I would imagine that this is not such a rare scenario:
(1) I do want to use Java features higher than those available in Java 1.3;
Then set source and target to 1.3... and hope you never upgrade to Java 8
Uh, sorry, but... did you read my question? I want to use Java features
HIGHER than 1.3. So why would I set source to 1.3? That is the opposite
of what I want. And what does this have to do with Java 8?
(2) I do *not* want having to monitor the maven-compiler-plugin by myself
all the time in order to check for updates and keep my pom.xml referring to
the currently latest version;
Incompatible goal. If you have a version of the compiler plugin that is
working. Leave it as is. If it isn't broken, don't fix it. If you decide
that it is broken (e.g. you think the version you have is not compiling
fast enough) then try upgrading... this way you have control over your build
My question is precisely *why* this goal is incompatible. You see, I am
allowed to not specify the maven-compiler-plugin version when I'm happy
with the default Java version. But as soon as I decide that I want to
use another Java version, I have to commit on a maven-compiler-plugin
version. That is suprising, is it not? :)
(3) yet I do *not* want Maven complaining about my project.xml being
malformed either.
Specify the version, or live with Maven complaining.
The Maven way is to make doing "the right thing" easy... doing the "not so
right thing" should encounter some friction... but unless we have good
reason we should not prevent you from shooting your foot off... we can make
it difficult to aim the gun at your foot though!
So what you're saying is that the maven-archetype-quickstart archetype
does a "not so right thing" since it does not specify a
maven-compiler-plugin version in its POM?
Thanks,
Malte
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org