Errata:
my "as Maven System Property" example is wrong (I had leftover `export
MAVEN_OPTS` from previous run)... so please neglect that example.

On Mon, Oct 9, 2023 at 11:58 AM Tamás Cservenák <ta...@cservenak.net> wrote:

> Howdy Eric,
>
> You are right, and sorry for this, I am (we all are) a bit overwhelmed
> these days....
>
> So you are right, that line should say "use 'maven.plugin.validation'
> **user** property". User properties (as told by mvn -h) are defined by the
> "-D" CLI switch.
>
> Re adding URL to message: Herve started already doing that, and many
> thanks to him for improving the horrible UX of this (IMHO important)
> feature.
> For start, he started refining the page and add it to release notes:
> https://github.com/apache/maven-site/pull/461
>
> And finally, regarding my answer to the 2nd part... to me it seems that
> the message was not fully delivered (for a non-core developer, it may, but
> for sake of completeness let me elaborate it):
>
> I just wanted to explain why Project Property CANNOT be used here... as if
> you think about Maven starting: JVM boots and Java System Properties are
> available, then Maven core "boots" (where Maven System Properties and Maven
> User Properties are assembled), and once booted, only then is model being
> loaded/parsed/built.
>
> Now, this where the validation should kick in (either for plugins defined
> in current project POM or in current project but with plugin goal directly
> invoked on CLI), hence, Project Properties (those on POM) are simply put
> "too late" for this, or are like chicken-and-egg problem (to load, we need
> to validate, but to report validation issues we need properties loaded).
>
> In conclusion, `maven.plugin.validation` may be defined as ANY Maven
> property EXCEPT Project property :)
>
> Examples (did them on maven-3.9.x branch of
> https://github.com/apache/maven):
>
> - as Java System Property:
> https://gist.github.com/cstamas/ecb5170d61de79117c4181c7f3cbfe78
> - as Maven System Property (env):
> https://gist.github.com/cstamas/a03eacc66a01eb12896199d846ebc339
> - as Maven User Property:
> https://gist.github.com/cstamas/14d5aed712720d558bff704944f46d21
>
> HTH
> Tamas
>
> On Sun, Oct 8, 2023 at 11:51 PM Eric Kolotyluk <eric.koloty...@gmail.com>
> wrote:
>
>> Wow... great response...
>>
>> Since you offered such a thoughtful response, I will try to do likewise...
>>
>> As someone who used to teach UI/UX in a third year university course,
>> and now an old curmudgeon 😉, if I am going to see a message like
>>
>> [WARNING] For more or less details, use 'maven.plugin.validation'
>> property with one of the values (case insensitive): [BRIEF, DEFAULT,
>> VERBOSE]
>>
>> I should not have to care what kind of property I am dealing with
>> because the message lacks context.
>>
>> Now, in many places I admire the skill, craftsmanship, intelligence, and
>> pure genius of Maven maintainers who add hyperlinks to their messages
>> for more context.  Indeed, a link to this amazing bit of knowledge,
>> https://maven.apache.org/guides/plugins/validation/index.html, would
>> have added such context. Maybe I should get off my lazy ass, fork the
>> repo, make the change, and submit a pull request...
>>
>> In the larger picture, these distinctions over properties is, IMHO,
>> unnecessary complexity to the UX. Good design leverages good intuition.
>> IMHO, the plugin should accept the project property
>> maven.plugin.validation, but I am willing to entertain a cogent argument
>> why this should not be the case.
>>
>> And thanks again for such a great response. I really enjoyed following
>> your explanation and references, and understanding better.
>>
>> Cheers, Eric
>>
>> P.S. Dealing with Maven people is way easier than Gradle people...
>>
>> On 2023-10-08 3:49 a.m., Tamás Cservenák wrote:
>> > Howdy,
>> >
>> > regarding plugin validation we have this documentation
>> > https://maven.apache.org/guides/plugins/validation/index.html
>> >
>> > that tries to explain what's and why's (given naming is constantly
>> brought
>> > up, let me tell in advance, the output uses "currently built project
>> POV",
>> > so internal issue is something one can fix by editing POM, while
>> external
>> > issue depends on external plugin, that needs fix and new release).
>> >
>> > As it stands on page, the `maven,plugin.validation` property is "maven
>> user
>> > property" (set with -D on cli) and is not "Maven project property",
>> hence
>> > setting it in POM/properties does not make sense (nor has it's effect).
>> > This should be done in `.mvn/maven.config` instead, if you want it
>> always
>> > ON.
>> >
>> > On the other hand, as we talk about properties, I'd like to remind you
>> > about other change ongoing in 3.9.x line, that is the cleanup of
>> property
>> > notion: in Maven (and Java) land, we deal with:
>> > - Java System Properties
>> > - Maven System Properties
>> > - Maven User Properties
>> > - Maven Project Properties
>> >
>> > In release notes "Breaking changes" there is last bullet that gives some
>> > hint about these:
>> >
>> https://maven.apache.org/docs/3.9.5/release-notes.html#potentially-breaking-core-changes-if-migrating-from-3-8-x
>> >
>> > HTH
>> > Tamas
>> >
>> > On Sat, Oct 7, 2023 at 11:57 PM Eric Kolotyluk <
>> eric.koloty...@gmail.com>
>> > wrote:
>> >
>> >> When I run
>> >>
>> >>      |mvn clean site -Dmaven.plugin.validation=VERBOSE|
>> >>
>> >> I get verbose output, but when I put the following in my pom.xml
>> >>
>> >>         <properties>
>> >>      <maven.plugin.validation>VERBOSE</maven.plugin.validation>
>> >>         </properties>
>> >>
>> >> and run
>> >>
>> >>      |mvn clean site|
>> >>
>> >>    I do not. Instead, I just get
>> >>
>> >>      [WARNING]
>> >>      [WARNING] Plugin validation issues were detected in 3 plugin(s)
>> >>      [WARNING]
>> >>      [WARNING]  * org.apache.maven.plugins:maven-site-plugin:4.0.0-M8
>> >>      [WARNING]  *
>> >> org.apache.maven.plugins:maven-surefire-report-plugin:3.1.2
>> >>      [WARNING]  *
>> >>      org.apache.maven.plugins:maven-project-info-reports-plugin:3.4.5
>> >>      [WARNING]
>> >>      [WARNING] For more or less details, use 'maven.plugin.validation'
>> >>      property with one of the values (case insensitive): [BRIEF,
>> DEFAULT,
>> >>      VERBOSE]
>> >>      [WARNING]
>> >>
>> >> Can someone please help me understand what is going on here?
>> >>
>> >> Here is some context...
>> >>
>> >>      $ mvn -version
>> >>      Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
>> >>      Maven home: C:\Program Files (Open)\Apache\apache-maven-3.9.5
>> >>      Java version: 21, vendor: Oracle Corporation, runtime: C:\Program
>> >>      Files\java\jdk-21
>> >>      Default locale: en_CA, platform encoding: UTF-8
>> >>      OS name: "windows 10", version: "10.0", arch: "amd64", family:
>> >>      "windows"
>> >>
>> >> Cheers, Eric
>> >>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>> For additional commands, e-mail: users-h...@maven.apache.org
>>
>>

Reply via email to