执行脚本作为mvn包的一部分

时间:2013-09-24 19:26:41

标签: maven war

我的pom.xml包含

    <plugin>                                                            
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>                                          
            <configuration>                                                 
                <warName>${project.artifactId}</warName>
                <outputDirectory>${wlp.install.dir}/usr/servers/liberty/apps</outputDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>            
    </plugin>

当我运行mvn package时,我可以看到此步骤正在运行:

  

[INFO] --- maven-war-plugin:2.3:war(默认战争)@ frontEnd ---

那很好。但是,我还想在创建war文件之前运行shell脚本。我尝试添加

<plugin>                                                            
    <artifactId>maven-antrun-plugin</artifactId>                    
    <version>1.7</version>                                          
    <configuration>                                                 
        <tasks>                                                     
            <exec dir="${basedir}"
                executable="${basedir}/src/main/webapp/concat"/>
        </tasks>                                                    
    </configuration>                                                
</plugin>

maven-war插件之前,但它没有运行。我甚至没有在antrun的输出中看到mvn。将<tasks>元素添加到<configuration>的{​​{1}}也不会做任何事情。

如果让maven只是将脚本作为maven-war-plugin

的一部分运行,我该怎么办?

1 个答案:

答案 0 :(得分:2)

pom.xml中的位置无关紧要,您必须将maven-antrun-plugin执行绑定到正确的生命周期阶段(例如编译),如下所示:

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase> <!-- a lifecycle phase --> </phase>
        <configuration>
          <target>

            <!--
              Place any Ant task here. You can add anything
              you can add between <target> and </target> in a
              build.xml.
            -->

          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

有关详细信息,请参阅The maven-antrun-plugin Usage Page;有关详细信息,请参见The Maven Introduction to the Build Lifecycle