RaceBase
RaceBase

Reputation: 18848

Skip exec-maven-plugin from Command Line Argument in Maven

By default in my project POM, exec-maven-plugin, rpm-maven-plugin will be executed, which is not required in local compilation/build.

I want to skip these plugin execution by passing Command Line Arguments I tried below command to skip them like normal plugins, but didn't work though!

mvn install -Dmaven.test.skip=true -Dmaven.exec.skip=true -Dmaven.rpm.skip=true

Upvotes: 26

Views: 32257

Answers (3)

Grim
Grim

Reputation: 1974

Try -Dexec.skip from specification:

http://www.mojohaus.org/exec-maven-plugin/java-mojo.html#skip

Upvotes: 17

Robert Scholte
Robert Scholte

Reputation: 12335

UPDATE: Starting with version 1.4.0 the former name skip has been changed into exec.skip.

This page should tell you that the name of the argument to be passed by cmdline (i.e. the user property) was called skip, which was a poorly chosen name. To fix this you could do the following:

<properties>
  <maven.exec.skip>false</maven.exec.skip> <!-- default -->
</properties>
...
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.3.2</version>
  <configuration>
    <skip>${maven.exec.skip}</skip>
  </configuration>
</plugin>

Upvotes: 36

Ananda
Ananda

Reputation: 51

Using profiles (as little as possible) and execution phase you may achieve what you want for plugins that do not handle the skip property:

Plugin configuration:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>rpm-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>${rpmPackagePhase}</phase>
            <id>generate-rpm</id>
            <goals>
                <goal>rpm</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
    ...
    </configuration>
</plugin>

Profile configuration:

<profiles>
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <rpmPackagePhase>none</rpmPackagePhase>
        </properties>
    </profile>
    <profile>
        <id>rpmPackage</id>
        <activation>
            <property>
                <name>rpm.package</name>
                <value>true</value>
            </property>
        </activation>
        <properties>
            <rpmPackagePhase>package</rpmPackagePhase>
        </properties>
    </profile>
</profiles>

Invocation:

mvn package -Drpm.package=true [...]

Upvotes: 5

Related Questions