在打包之前在Maven中执行任务

sti*_*vlo 3 eclipse maven-3 maven

在打包之前,我不明白如何在Maven中运行任务.

<build>
    <plugins>
        [...]
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <configuration>
                        <tasks>
                            <echo message="****** TEST *****" />
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

当我跑步时mvn clean package,它不会被执行.我该如何执行此任务?我正在使用maven 3.0.5,如果重要的话.

**更新:**

添加idgoal按照建议从命令行解决问题.

<id>my-generate-sources</id>
<goals>
    <goal>run</goal>
</goals>
Run Code Online (Sandbox Code Playgroud)

为了修复Eclipse错误,我在构建部分中配置了lifecyleMappingMetadata:

<build>
...
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-antrun-plugin</artifactId>
                                    <versionRange>[1.7,)</versionRange>
                                    <goals>
                                        <goal>run</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
Run Code Online (Sandbox Code Playgroud)

Gui*_*ont 5

您需要添加<goals>标记(并且<id>强烈建议添加标记,但如果您只有一个<execution>插件,则不需要添加标记),例如

      ...
      <execution>
        <id>print-something</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>run</goal>
        </goals>
        <configuration>
          <tasks>
            <echo message="****** TEST *****" />
          </tasks>
        </configuration>
      </execution>
      ...
Run Code Online (Sandbox Code Playgroud)