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