我的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
答案 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。