мавен ява мавен-антрун-плагин - PullRequest
1 голос
/ 09 февраля 2012

У меня следующая проблема:

Я настроил плагин ant в моем файле pom.xml для фазы проверки.Задача состоит в том, чтобы просто отобразить некоторую строку в консоли.Проблема в том, что я вижу, как выполняется выполнение, но задачи не выполняются.Кто-нибудь сталкивался с подобной проблемой?Ниже приведен код моего файла pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mp</groupId>
<artifactId>parentApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>parentApp</name>
<description>This is just to test pom inheritance</description>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
    <defaultGoal>package</defaultGoal>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <id>echodir</id>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <phase>verify</phase>
                    <inherited>true</inherited>
                    <configuration>
                        <task>
                            <echo>*************************************************** Build Dir</echo>
                            <mkdir>./hey</mkdir>
                        </task>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
    </dependencies>
</dependencyManagement>

Вывод, полученный при запуске mvn verify , выглядит следующим образом:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building parentApp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-antrun-plugin:1.1:run (echodir) @ parentApp ---
[INFO] Executing tasks
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.321s
[INFO] Finished at: Thu Feb 09 17:28:01 CET 2012
[INFO] Final Memory: 2M/121M
[INFO] ------------------------------------------------------------------------

Таким образом, в конечном итоге отсутствует вывод между Выполнение задач и Выполненные задачи , но сам плагин учитывается.Есть идеи почему?

Ответы [ 3 ]

2 голосов
/ 10 февраля 2012

Возможно, в версии 1.1 плагина maven antrun есть ошибки.

Следующий фрагмент работает для меня.Обратите внимание, что <mkdir>./hey</mkdir является неправильным синтаксисом для задачи ant mkdir .Кроме того, task является устаревшим в пользу target.

   <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
            <execution>
                <id>echodir</id>
                <goals>
                    <goal>run</goal>
                </goals>
                <phase>verify</phase>
                <inherited>true</inherited>
                <configuration>
                    <target>
                        <echo>*************************************************** Build Dir</echo>
                        <mkdir dir="hey"/>
                    </target>
                </configuration>
            </execution>
        </executions>
    </plugin>
0 голосов
/ 10 февраля 2012

Как уже упоминалось в некоторых комментариях, используйте последнюю версию (1.7) плагина. Также замените ваши <task> теги на <target> теги. Например:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>echodir</id>
            <goals>
                <goal>run</goal>
            </goals>
            <phase>verify</phase>
            <inherited>true</inherited>
            <configuration>
                <target>
                    <echo>*************************************************** Build Dir</echo>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>
0 голосов
/ 09 февраля 2012

Попробуйте выполнить другое задание во время проверки, например: «скопировать какой-либо файл в какой-либо каталог»

<copy file="${project.build.directory}/somefile" todir="some dir" 
 overwrite="true" />
...