core plugins to be modified:

I moved this list over to the wiki article [0] in Confluence, think it's
easier to maintain there instead of being splattered through this mailing
thread.

> This in place, plugin parameters could be written like
>
>   /**
>    * @parameter expression="${encoding}"
>    *            default-value="${project.build.sourceEncoding}"
>    */
>   private String encoding;
>
> i.e. still provide some short expression name for overrides from the
> cli.
should we provide ${encoding} or ${sourceEncoding}?

Don't know, it's the question of ease of typing vs. expressiveness. The
tools javac and javadoc have their corresponding cli parameters named
"encoding", too. On the other hand, how often do we expect users to really
specify this parameter via the cli instead of permanently configuring the
POM?

> Of course, this would require the plugin to add a manual check whether
> the
> default-value expression actually was existent or whether an older Maven
> version is running.
I'm not convinced here: just let null=platform encoding, as it has been
the case previously

If I understand you correctly, this would make the encoding behavior
dependent on the currently used Maven version, wouldn't it? Let's assume
Maven 2.0.10+ defines the propery ${project.build.sourceEncoding} in the
super POM to a specific value like Latin-1 as agreed so far. Then, any
plugin that populates its encoding parameter via this property by means of
the default-value annotation will use that specific encoding. However, if
the same plugin version is run by Maven 2.0.9-, it will receive null for the
encoding property and as you suggested falls back to a platform-dependent
encoding. I would rather prefer that the behavior of a plugin depends only
on its own version and not also on the executing Maven version to ease
reproducibility.

So I believe there are two choices:
If your initial concerns about backwards compatibility meet general
consensus, the super POM should simply not define a specific property for
${project.build.sourceEncoding} such that users get platform-dependent
behavior as now by default (not my favorite).
Otherwise, plugins should by convention agree to handle a null value for the
encoding parameter to denote some fixed encoding. This way, upgrading Maven
will not affect the default encoding behavior.


Benjamin


[0]
http://docs.codehaus.org/display/MAVENUSER/POM+Element+for+Source+File+Encoding


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to