<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- Parent must be acme-parent. --> <parent> <groupId>com.acme.rules</groupId> <artifactId>acme-parent</artifactId> <version>1.0</version> </parent> <groupId>tmp.cub.rule</groupId> <artifactId>inherit-usage</artifactId> <version>1.0</version> <packaging>pom</packaging> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${enforcer-api.version}</version> <dependencies> <dependency> <groupId>com.acme.rules</groupId> <artifactId>cub-enforcer-rules</artifactId> <version>${project.version}</version> </dependency> </dependencies> <executions> <execution> <configuration> <rules> <AcmeParentInheritRule implementation="com.acme.rules.AcmeParentInheritRule"/> </rules> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>acme-parent</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <AcmeParentInheritRule implementation="com.acme.rules.AcmeParentInheritRule"/> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
2012/10/25 Anders Hammar <[email protected]>: > I can't say for sure as you don't provide a link to your pom, but I'm > fairly sure you've configured it wrong. It should work. > > /Anders > > On Thu, Oct 25, 2012 at 2:13 PM, Arnaud bourree > <[email protected]> wrote: >> I try without sucess: >> [INFO] Scanning for projects... >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] Building Unnamed - tmp.acme.rule:inherit-usage:pom:1.0 >> [INFO] task-segment: [enforcer:enforce] >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] >> ------------------------------------------------------------------------ >> [ERROR] BUILD ERROR >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] One or more required plugin parameters are invalid/missing for >> 'enforcer:enforce' >> >> [0] Inside the definition for plugin 'maven-enforcer-plugin' specify >> the following: >> >> <configuration> >> ... >> <rules>VALUE</rules> >> </configuration>. >> >> >> Note that I run it after mvn clear >> >> Arnaud. >> >> 2012/10/25 Anders Hammar <[email protected]>: >>> In your configuration, the rule configuration is on execution level >>> meaning that it will only be used for the lifecycle execution (mvn >>> package e.g.) and not when execution the plugin for command line (mvn >>> enforcer:enforce). >>> >>> There's been some noise around using the enforcer plugin from >>> command-line lately (is it you?). Personally I don't really get it, >>> but that's just me. >>> >>> If you want to be able to run mvn enforcer:enforce you need to move >>> the configuration to plugin level and also put it in the >>> pluginManagement section. Something like this: >>> >>> <build> >>> <pluginManagement> >>> <plugins> >>> <plugin> >>> <groupId>org.apache.maven.plugins</groupId> >>> <artifactId>maven-enforcer-plugin</artifactId> >>> <version>1.1.1</version> >>> <configuration> >>> <rules> >>> <AcmeParentInheritRule >>> implementation="com.acme.AcmeParentInheritRule" /> >>> </rules> >>> </configuration> >>> <dependencies> >>> <dependency> >>> <groupId>com.acme</groupId> >>> <artifactId>acme-enforcer-rules</artifactId> >>> <version>1.0</version> >>> </dependency> >>> </dependencies> >>> </plugin> >>> </plugins> >>> </pluginManagement> >>> <plugins> >>> <plugin> >>> <groupId>org.apache.maven.plugins</groupId> >>> <artifactId>maven-enforcer-plugin</artifactId> >>> <executions> >>> <execution> >>> <id>enforcer-check</id> >>> <goals> >>> <goal>enforce</goal> >>> </goals> >>> </execution> >>> </executions> >>> </plugin> >>> </plugins> >>> </build> >>> >>> This is the simplest way of doing this, btu there are drawbacks. One >>> is that all execution bindings will have the same rule set. In your >>> case probably not an issue. If it is an issue there are ways around >>> this by using the magic id ("default-cli") for the command line >>> execution. I have never used that magic id though in a real world use >>> case. >>> >>> /Anders >>> >>> On Thu, Oct 25, 2012 at 10:01 AM, Arnaud bourree >>> <[email protected]> wrote: >>>> On my side, I put configuration in <plugins> section and not in >>>> <pluginManagment> one. >>>> <build> >>>> <plugins> >>>> <plugin> >>>> <groupId>org.apache.maven.plugins</groupId> >>>> <artifactId>maven-enforcer-plugin</artifactId> >>>> <version>1.1.1</version> >>>> <dependencies> >>>> <dependency> >>>> <groupId>com.acme</groupId> >>>> <artifactId>acme-enforcer-rules</artifactId> >>>> <version>1.0</version> >>>> </dependency> >>>> </dependencies> >>>> <executions> >>>> <execution> >>>> <configuration> >>>> <rules> >>>> <AcmeParentInheritRule >>>> implementation="com.acme.AcmeParentInheritRule"/> >>>> </rules> >>>> </configuration> >>>> <goals> >>>> <goal>enforce</goal> >>>> </goals> >>>> </execution> >>>> </executions> >>>> </plugin> >>>> </plugins> >>>> </build> >>>> >>>> And I note that "mvn enforcer:enforce" doesn't work without "package" >>>> So I run "mvn package enforcer:enforce" >>>> But in fact if you run "mvn package" maven will run enforcer rules >>>> >>>> Arnaud >>>> >>>> 2012/10/25 Anders Hammar <[email protected]>: >>>>> You probably have the configuration in the wrong place. Is it on >>>>> plugin level or execution level? It has to be on plugin level if >>>>> you're to run "mvn enforcer:enforce". Also, it should be in the >>>>> pluginManagement section. >>>>> >>>>> /Anders >>>>> >>>>> On Thu, Oct 25, 2012 at 7:27 AM, Wang, Simon <[email protected]> >>>>> wrote: >>>>>> I specified rule in pom.xml, after run "mvn enforcer:enforce", still >>>>>> complain no rules set. >>>>>> Really don't know what happened. >>>>>> >>>>>> Regards >>>>>> Simon >>>>>> -----Original Message----- >>>>>> From: Arnaud bourree [mailto:[email protected]] >>>>>> Sent: 2012年10月24日 22:18 >>>>>> To: Maven Users List >>>>>> Subject: Re: Specify enforcer:enforce rules from command line >>>>>> >>>>>> I create issue MENFORCER-142 >>>>>> >>>>>> I found a partial work-around: running mvn enforcer:enforce fail if >>>>>> there is no rules set :-/ >>>>>> >>>>>> But that not enough for me. >>>>>> >>>>>> Regards, >>>>>> >>>>>> Arnaud. >>>>>> >>>>>> >>>>>> 2012/10/23 Anders Hammar <[email protected]>: >>>>>>> Don't think it's possible. The enforcer plugin is meant to be bound to >>>>>>> the build lifecycle so it should be configured in the pom. But I guess >>>>>>> an enhancement ticket with a patch could change that? :-) >>>>>>> >>>>>>> /Anders >>>>>>> >>>>>>> On Tue, Oct 23, 2012 at 5:50 PM, Arnaud bourree >>>>>>> <[email protected]> wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> How could we specify enforcer:enforce rules from command line? >>>>>>>> >>>>>>>> I want to run command line like following without updating any pom.xml: >>>>>>>> mvn enforcer:enforce -Drules=com.acme.UseAcmeParentPom >>>>>>>> >>>>>>>> The goal of this enforcer:enforce rule is to check that Acme's >>>>>>>> developers write pom.xml which inherit from acme's parent pom.xml And >>>>>>>> because they may not inherit from acme's parent pom.xml, I cannot >>>>>>>> specify enforcer rule in. >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> Arnaud. >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>>> For additional commands, e-mail: [email protected] >>>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>> For additional commands, e-mail: [email protected] >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [email protected] >>>>>> For additional commands, e-mail: [email protected] >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
