Mavent AntRun не выполняет задачи

Следуя инструкциям на странице использования (http://maven.apache.org/plugins/maven-antrun-plugin/usage.html) и другим вопросам Stackru, я пытался запустить задачу Ant из моей сборки Maven., Я упростил то, что я должен делать, до простого эха "Привет, Maven", но я ничего не понимаю.

Я выполняю Maven с:

mvn package

Я хочу, чтобы эта конкретная задача выполнялась до упаковки ("prepare-package"), поэтому я сначала попробовал эту фазу, но когда это не сработало, я попытался сделать свою фазу просто "package".

Вот одна конфигурация плагина, которую я пробовал:

<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>

А вот еще один, который я попробовал:

<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>

Я также пробовал это без .

Я не получаю ни ошибок, ни вывода вообще. Даже если я выполню Maven -debug, слово "эхо" нигде не появляется в выходных данных, слово "antrun" нигде не появляется в выходных данных, а слово "привет" нигде не появляется в выходных данных.

Это похоже на то, что конфигурации плагина там даже нет.

4 ответа

Решение

Андрей получил правильный ответ в своих комментариях. Когда я переместил свой Maven-Antrun-плагин как есть выше (с <target> вместо <tasks>) Снаружи <pluginManagement> и в автономный <plugins>, мое Ant-задание начало выполняться.

Удивительно, сколько запросов Google и Stackru не возвращали другой вопрос раньше, но теперь я лучше понимаю pluginManagement. Спасибо, Андрей!

Смена муравья с 1.7 на 1.8 решила мою проблему.

Я столкнулся с подобными проблемами, и это работало только когда я добавил тег версии 1.8. Это не сработало бы иначе. Это может помочь.

У меня была похожая проблема. В моем случае это было потому, что у меня не было <id>...</id> тег установлен для исполнения. Ниже приведен XML, который работал:

<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>
Другие вопросы по тегам