我需要使用Maven构建我的Grails项目,并且需要添加额外的grails命令。我正在使用grails-maven-plugin来创建pom文件,我可以使用$ mvn package
构建war文件
在构建此应用程序时,我将需要执行另一个grails命令,一个不直接对应任何maven构建阶段。参考docs,我在grails-maven插件中添加了第二个执行元素,如下所示:
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>${grails.version}</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>init</goal>
<goal>maven-clean</goal>
<goal>validate</goal>
<goal>config-directories</goal>
<goal>maven-compile</goal>
<goal>maven-test</goal>
<goal>maven-war</goal>
<goal>maven-functional-test</goal>
</goals>
</execution>
<execution>
<id>stats</id>
<phase>init</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<command>stats</command>
</configuration>
</execution>
</executions>
</plugin>
对于这个例子,我试图在maven init阶段执行grails stats
。 (最终,当我运行时,统计数据将被更有用的东西取代。)
$ mvn package
输出包括:
[INFO] [grails:validate {execution: default}]
[INFO] [grails:init {execution: default}]
[INFO] [grails:config-directories {execution: default}]
[INFO] [resources:resources {execution: default-resources}]
显然不包含grails stats
的执行。我可以通过以下方式直接通过Maven执行stats命令:
$ mvn grails:exec -Dcommand=stats
只有在pom中添加为目标时才能执行。
我正在使用Java 1.5.0_22,Grails 1.3.7和Maven 2.2.1。
答案 0 :(得分:0)
好吧,我的问题是混乱的目标和Maven阶段。注意我正在尝试
<phase>init</phase>
我尝试了目标列表中的其他项目,但这些不是Maven阶段。
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html