maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arnaud bourree <arnaud.bour...@gmail.com>
Subject Re: Specify enforcer:enforce rules from command line
Date Thu, 25 Oct 2012 12:13:12 GMT
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 <anders@hammar.net>:
> 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
> <arnaud.bourree@gmail.com> 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 <anders@hammar.net>:
>>> 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 <Yunfeng.Wang@ebay.com> 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:arnaud.bourree@gmail.com]
>>>> 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 <anders@hammar.net>:
>>>>> 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
>>>>> <arnaud.bourree@gmail.com> 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: users-unsubscribe@maven.apache.org
>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>

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


Mime
View raw message