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

Reply via email to