waffel’s Weblog

November 18, 2010

disable maven enforcer rule

Filed under: software — Thomas Wabner @ 6:33 nachmittags
Tags: , , , ,

Apache maven enforcer rules are very useful in large projects. A common usage of such enforcer rules is to define them in a central point like a project parent pom.xml. For example following enforcer definition can be set in a pom parent:

package-parent pom.xml:

...
<plugin>
  <artifactId>maven-enforcer-plugin</artifactId>
     <executions>
       <execution>
         <id>enforce-java-1_4</id>
         <goals>
           <goal>enforce</goal>
         </goals>
         <configuration>
           <rules>
             <requireProperty>
                <property>java.compiler.version</property>
                <regex>1\.4</regex>
                <regexMessage>You must compile with Java 1.4, as long our servers run in old NetWeaver!</regexMessage>
              </requireProperty>
            </rules>
            <fail>true</fail>
         </configuration>
      </execution>
    </executions>
</plugin>
...

This enforcer rule should ensure that all projects, which using the parent POM using a Java 1.4 compiler.

Often such parent pom defines many other useful properties and settings for projects. If you want to use these definition and ONLY want to disable the enforcer rule you can simple do follow “trick”:

...
<parent>
  <groupId>org.waffel</groupId>
  <artifactId>package-parent</artifactId>
  <version>1.1</version>
</parent>

<build>
   <plugins>
     <!-- we need to overide the enforcer rules here because we have java 1.6 and not the  old 1.4 -->
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-java-1_4</id>
            <phase>none</phase>
          </execution>
        </executions>
      </plugin>
   </plugins>
</build>
...

I use the same approach here as described in my article how to diable a inherited maven plugin.

Februar 16, 2010

howto disable inherited maven plugin

Filed under: software — Thomas Wabner @ 3:43 nachmittags
Tags: , , , ,

We using in our department a big hierarchy of maven parents (like the apache community does). Some of these parents define useful plugins.

If I want to use the parents (and often this is a good idea, because the parents defining for example version informations for my dependencies), but I do not want to have a specific plugin invoked while I’am using maven, I can simple disable the plugin with follow configuration in my pom.xml:

...
<build>
  <plugins>
     <plugin>
        <artifactId>thePluginArtifact</artifactId>
        <groupId>thePluginGroup</groupId>
        <executions>
           <execution>
              <id>the-execution-id</id>
              <phase>none</phase>
           </execution>
        </executions>
     </plugin>
  </plugins>
</build>
...

The trick how to disable a plugin is to set the phase of the plugin to none.

The Rubric Theme. Bloggen Sie auf WordPress.com.

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 28 Followern an