【问题标题】:Execute my groovy script with ant or maven用 ant 或 maven 执行我的 groovy 脚本
【发布时间】:2011-04-24 07:15:27
【问题描述】:

我有以下几点:

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

全部在同一个文件夹中。

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

【问题讨论】:

    标签: java maven-2 ant groovy


    【解决方案1】:

    对于 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
    

    【讨论】:

    • @Pascal:你偷了我的答案 :-) (+1)
    • @seanizer 是的,我承认。但我给了你 1500 万 :)
    • 好吧,我和以前一样接近了。我现在写了这个
    • @Mikael 对不起,我没听懂你。有什么特殊的问题悬而未决吗?
    • @Pascal BTW artifactId 已更改。当前版本可以在这里找到:mvnrepository.com/artifact/org.codehaus.gmaven/gmaven-plugin(文档已过时)
    【解决方案2】:

    有一个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>
    

    【讨论】:

      【解决方案3】:

      您可以通过 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-26
        • 2011-06-28
        相关资源
        最近更新 更多