<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]

Reply via email to