用ant或maven执行我的groovy脚本

时间:2010-10-12 12:32:22

标签: java maven-2 ant groovy

我有以下内容:

  • 1个java类
  • 1个bat文件(启动groovy脚本)
  • 1 groovy file

全部在同一个文件夹中。

现在我想使用Maven或Ant来运行groovy文件,但我无法让它工作。有人可以告诉我如何编写这个pom.xml或build.xml吗?我不想再使用bat文件了。

3 个答案:

答案 0 :(得分:17)

使用Maven,使用gmaven插件。来自its documentation

  

Execute a Local Groovy Script

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.3</version>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>execute</goal>
            </goals>
            <configuration>
                <source>${pom.basedir}/src/main/script/myscript.groovy</source>
            </configuration>
        </execution>
    </executions>
</plugin>

触发指定的阶段。

或者,如果您不想将插件绑定到特定阶段,可以像下面这样配置:

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
        <source>
           println "Hi"
        </source>
    </configuration>
</plugin>

并致电

mvn groovy:execute

答案 1 :(得分:4)

ANT有一个groovy plugin可以调用groovy脚本

<groovy src="helloWorld.groovy"/>

我建议将它与ivy结合使用,它可以为您下载所需的jar,类似于之前给出的Maven示例。

<强>的build.xml

<project name="demo" default="run" xmlns:ivy="antlib:org.apache.ivy.ant">

    <target name="resolve">
        <ivy:resolve/>
        <ivy:cachepath pathid="build.path"/>
    </target>

    <target name="run" depends="resolve">
        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>

        <groovy src="helloWorld.groovy"/>
    </target>

</project>

<强>的ivy.xml

<ivy-module version="2.0">
    <info organisation="org.myorg" module="demo"/>
    <dependencies>
        <dependency org="org.codehaus.groovy" name="groovy-all" rev="1.7.4" conf="default"/>
    </dependencies>
</ivy-module>

答案 2 :(得分:2)

您可以通过Ant with a full example here执行此操作。请参阅使用Ant编译和运行部分。

您必须download ant,确保设置了ANT_HOME和JAVA_HOME变量,并将ANT_HOME / bin放入PATH。

一旦你有了build.xml,就可以在命令行调用ant来运行build.xml

有关Groovy ant task here

的更多详情