Question

Following the instructions on the usage page (http://maven.apache.org/plugins/maven-antrun-plugin/usage.html) and other Stackoverflow questions I've been attempting to get an Ant task to run from my Maven build. I've simplified what I what to do down to a simple echo of "Hello, Maven," but I'm not getting anything.

I'm executing Maven with:

mvn package

I want this particular task to run before packaging ("prepare-package"), so I tried that phase first, but when that didn't work I tried making my phase just "package."

Here's one plugin configuration I've tried:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>id.package.ant</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <echo message="Hello, maven"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

And here's another one I've tried:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>id.package.ant</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <echo message="Hello, maven"/>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>

I have also tried these without the <id>.

I get no errors, no output at all. Even if I execute Maven -debug, the word "echo" appears nowhere in the output, the word "antrun" appears nowhere in the output, and the word "hello" appears nowhere in the output.

It's like the plugin configuration isn't even there.

Was it helpful?

Solution

Andrew had the correct answer in his comments. When I moved my maven-antrun-plugin AS-IS above (with the <target> instead of <tasks>) OUT of <pluginManagement> and into a standalone <plugins>, my Ant task started executing.

Amazing how many searches of Google and Stackoverflow didn't return the other question before, but now I understand pluginManagement better. Thanks, Andrew!

OTHER TIPS

Change ant from 1.7 to 1.8 solved my problem.

I encountered similar problems and it only worked when I added the version 1.8 tag. It wouldn't work otherwise. This might help.

I was having a similar problem. In my case, it was because I didn't have the <id>...</id> tag set for the execution. Below is the XML that worked:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>test</id> <!-- has to be set -->
            <phase>validate</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target name="test">
                    <echo message="testing 1 2 3"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top