Nick Williams
Nick Williams

Reputation: 3188

Mavent AntRun Not Executing Tasks

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.

Upvotes: 16

Views: 26004

Answers (4)

Alex Georgescu
Alex Georgescu

Reputation: 61

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

Upvotes: 6

Gladclef
Gladclef

Reputation: 709

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>

Upvotes: 2

barryku
barryku

Reputation: 2574

Change ant from 1.7 to 1.8 solved my problem.

Upvotes: 11

Nick Williams
Nick Williams

Reputation: 3188

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!

Upvotes: 26

Related Questions