Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run exec-maven-plugin on demand only

Tags:

maven

Is there a way to configure maven (in general) or the exec-maven-plugin so that it is executed on demand only, but linked up to (and including) test?

I have a test main (java) that I use for ad-hoc testing. I can run it fine from within Eclipse. But I also want to run it from the command line.

However, I do not want it to run with the unit tests (test phase).

But it has to be staged after the test phase, because it uses code from the test subtree and it uses the test classpath.

Here is what I have. It works fine, except that it runs as part of the test phase.

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
            <execution>
                <id>adhoc-domain-test</id>
                <phase>test</phase>
                <goals>
                    <goal>java</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <mainClass>com.abc.test.AdHocTest</mainClass>
            <classpathScope>test</classpathScope>
        </configuration>
    </plugin>

If I change the phase to (eg) verify, it still gets executed on mvn install.

like image 637
rwfbc Avatar asked Feb 18 '26 04:02

rwfbc


1 Answers

To run a plugin on demand only, you can wrap the plugin inside a profile that is not active by default, like this:

<profiles>
    <profile>
        <id>my-profile</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                ...
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

The profiles element goes directly under the project element. You can now run the plugin like this:

mvn -P my-profile ...

like image 58
gjoranv Avatar answered Feb 19 '26 16:02

gjoranv



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!