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 <[email protected]> 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 <[email protected]> > 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 < >> [email protected]> >> > 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: [email protected] >> For additional commands, e-mail: [email protected] >> >>
