【发布时间】:2011-04-24 07:15:27
【问题描述】:
我有以下几点:
- 1 个 java 类
- 1 个 bat 文件(启动 groovy 脚本)
- 1 个 groovy 文件
全部在同一个文件夹中。
现在我想使用 Maven 或 Ant 来运行 groovy 文件,但我无法让它工作。有没有人可以告诉我如何编写这个 pom.xml 或 build.xml?我不想再使用bat文件了。
【问题讨论】:
我有以下几点:
全部在同一个文件夹中。
现在我想使用 Maven 或 Ant 来运行 groovy 文件,但我无法让它工作。有没有人可以告诉我如何编写这个 pom.xml 或 build.xml?我不想再使用bat文件了。
【问题讨论】:
对于 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
【讨论】:
有一个groovy plugin 用于 ANT 可以调用 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>
【讨论】:
您可以通过 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
【讨论】: