将Grails命令添加到Maven阶段 - 我做错了什么?

时间:2011-11-04 20:06:35

标签: java grails maven build

我需要使用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。

1 个答案:

答案 0 :(得分:0)

好吧,我的问题是混乱的目标和Maven阶段。注意我正在尝试

<phase>init</phase>

我尝试了目标列表中的其他项目,但这些不是Maven阶段。

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html