I think with Maven 4 you may combine conditions for profile activation and can 
Even have boolean logic . So may requiring another property set for 
prod+liquibase should be possible.
Mit freundlichen Grüßen
Mirko Friedenhagen
— 
Sent from my mobile

> Am 14.08.2025 um 21:36 schrieb Andy Law <andy....@roslin.ed.ac.uk>:
> 
> Thanks. Those are interesting ideas.
> 
> Later,
> 
> Andy.
> 
> From: Tamás Cservenák <ta...@cservenak.net>
> Date: Thursday, 14 August 2025 at 17:57
> To: Maven Users List <users@maven.apache.org>
> Subject: Re: Require confirmation before running a plugin goal
> 
> Howdy,
> 
> This most certainly cannot be an enforcer rule to "watch" some plugin
> execution (as it may be too late).
> 
> But this reminds me of an "experiment" we were tinkering with:
> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fmaven%2Fpull%2F1086&data=05%7C02%7C%7Cad737671456341b947b308dddb539b6a%7C2e9f06b016694589878910a06934dc61%7C0%7C0%7C638907874323388845%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=qh%2FFbRLrhVkEZhZ2Bh5hhOdQL%2FaNr7ok1Wtv8ckpIlY%3D&reserved=0<https://github.com/apache/maven/pull/1086>
> 
> Here the idea was to be able to instruct Maven (without tampering with
> POM) to "skip" certain plugin executions. Now, instead of
> filter/match/remove. something else can happen here, like:
> - filter
> - match
> - some action, like "remove" (as in PR), but it could be prompt, and
> if response is 'Y' NOT remove, etc
> This is just to show the internal, I'd NOT recommend going this route.
> 
> Another (much simpler to implement) idea: an extension that inspect
> the (effective) model, and collects plugin executions of interests and
> does something.... ?
> To inspect model here is an example:
> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsonatype%2Fnexus-maven-plugins%2Fblob%2Ff5ba90d339064c4981716a98e4afa6a76bc3ff2e%2Fstaging%2Fmaven-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fsonatype%2Fnexus%2Fmaven%2Fstaging%2Fdeploy%2FDeployLifecycleParticipant.java%23L88&data=05%7C02%7C%7Cad737671456341b947b308dddb539b6a%7C2e9f06b016694589878910a06934dc61%7C0%7C0%7C638907874323415850%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=Vyyaim%2B2bBjn0TnPyMxt560Bz2jSYzNQ5bl%2ByeLKNFc%3D&reserved=0<https://github.com/sonatype/nexus-maven-plugins/blob/f5ba90d339064c4981716a98e4afa6a76bc3ff2e/staging/maven-plugin/src/main/java/org/sonatype/nexus/maven/staging/deploy/DeployLifecycleParticipant.java#L88>
> I'd advise to NOT modify the model (like remove the plugin), but instead:
> - check model
> - IF plugin/goal of interest detected, perform some action: prompt, yada
> - basically fail the build if plugin would run, but user did not
> provide "consent" for it
> 
> This could be a nice generic extension, where user of extension could
> provide some configuration like:
> G:A:goal = FAIL < fails the build if this plugin goal is detected to be 
> executed
> G:A:goal = APPROVE < makes a prompt, fail or continue the build
> depending on user input
> etc
> 
> My 5 cents
> 
> Thanks
> T
> 
>> On Thu, Aug 14, 2025 at 6:04 PM Andy Law <andy....@roslin.ed.ac.uk> wrote:
>> 
>> I recognise that I may be over-reaching with my wish list, but any and all 
>> constructive suggestions are welcomed.
>> 
>> I have a project that uses liquibase to manage the database structure. I 
>> store the connection credentials in profiles in my settings.xml file and 
>> have an enforcer rule to ensure that one, and only one, of the develop, 
>> sandbox, and production profiles is active when I run maven.
>> 
>> I stash the liquibase changes in a sub-module of the project and only run 
>> the plugin goals when needed. I would like to have the build/run plugin 
>> process prompt me to confirm that I really mean to do what I’m trying to do 
>> if I run the liquibase plugin with the production profile active.
>> 
>> So:
>> 
>>  *
>> clean, install, validate, test etc. under normal circumstances, run with one 
>> of the profiles active and don’t warn.
>>  *
>> run liquibase:update with the develop or sandbox profiles active - again, 
>> don’t warn
>>  *
>> run liquibase:update with the production profile active - I want maven to 
>> ask me to confirm that I really mean to do that.
>> 
>> 
>> The liquibase plugin has a “promptOnNonLocalDatabase” option, but I can’t 
>> use that because the connections to the database are tunnelled so they all 
>> appear as local as far as the plugin process is concerned.
>> 
>> I’m happy enough to hack together code to do this if there is no current 
>> solution to the problem, but I’m not sure how I would go about tying 
>> something like an enforcer rule to just the liquibase plugin executions.
>> 
>> Does anyone think this is possible?
>> 
>> 
>> Later,
>> 
>> 
>> 
>> Andy
>> 
>> --------
>> 
>> Yada, yada, yada...
>> 
>> 
>> 
>> Disclaimer: This e-mail and any attachments are confidential and intended 
>> solely for the use of the recipient(s) to whom they are addressed. If you 
>> have received it in error, please destroy all copies and inform the sender.
>> 
>> 
>> 
>> The University of Edinburgh is a charitable body, registered in Scotland, 
>> with registration number SC005336. Is e buidheann carthannais a th’ ann an 
>> Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336.
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to