为什么exec-maven-plugin会运行两次所有阶段?

时间:2018-05-02 13:17:16

标签: maven

当我使用exec-maven-plugin运行带有maven的构建时,由于某种原因它会运行两次。有没有办法解决这个问题,所以它只运行一次?我已经尝试在pom.xml中设置我的阶段来编译和打包,无论哪种方式,它运行两次。我的pom看起来像

<build>
  <plugins>
    <plugin>
      <artifactId>exec-maven-plugin</artifactId>
      <groupId>org.codehaus.mojo</groupId>
      <version>1.0</version>
      <executions>
        <execution>
          <id>foo</id>
          <phase>compile</phase>
          <goals>
            <goal>exec</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <executable>bash</executable>
        <commandlineArgs>myscript.sh</commandlineArgs>
      </configuration>
     </plugin>
    </plugins>
  </build>

2 个答案:

答案 0 :(得分:0)

事实证明,添加阶段标记导致命令执行两次。离开时,它现在按预期运行一次。我想现在我给它的阶段并不重要,它总会实现目标,这对我有用。

答案 1 :(得分:0)

如果您需要在构建的早期运行此程序,则不可以选择不包括阶段。

您可以在插件配置中执行以下操作:

                       <executions>
                            <execution>
                                <id>default</id>
                                <phase>none</phase> <!-- disable the default execution in validate phase -->
                            </execution>
                            <execution>
                                <id>exec-do-something</id>
                                <goals>
                                    <goal>java</goal>
                                </goals>
                                <phase>generate-sources</phase><!-- now it will run once but in an earlier phase -->
                            </execution>
                        </executions>