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]

Reply via email to