And addendum: Yet another way to set this "for good": using .mvn/maven.config: https://gist.github.com/cstamas/0f07b4b045ae5c98f60ecd530f928201
I think this above is what you want, as I assume you wanted to enable validation for the project (in which POM you defined this property) and have it enabled always. This file .mvn/maven.config should be checked in into SCM along with POMs and sources, and you are good to go. On Mon, Oct 9, 2023 at 12:02 PM Tamás Cservenák <ta...@cservenak.net> wrote: > 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 >>> >>>