Execute my groovy script with ant or maven

后端 未结 3 1362
迷失自我
迷失自我 2021-01-02 10:12

I have the following:

  • 1 java class
  • 1 bat file (starts the groovy script)
  • 1 groovy file

All in the same folder.

Now I w

相关标签:
3条回答
  • 2021-01-02 11:07

    You can do this via Ant as shown with a full example here. See the Compiling and running with Ant section.

    You'll have to download ant, make sure the ANT_HOME and JAVA_HOME variables are set, and put the ANT_HOME/bin in your PATH.

    Once you have the build.xml in place, you can call ant at the command line which will run the build.xml

    More details on the Groovy ant task here

    0 讨论(0)
  • 2021-01-02 11:12

    With Maven, use the gmaven plugin. From 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>
    

    And trigger the specified phase.

    Or, if you don't want to bind the plugin to a particular phase, you could configure it like this:

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

    And call

    mvn groovy:execute
    
    0 讨论(0)
  • 2021-01-02 11:16

    There is a groovy plugin for ANT that can invoke groovy scripts

    <groovy src="helloWorld.groovy"/>
    

    I would recommend combining it with ivy which can download the required jars for you, similar to the Maven example given previously.

    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>
    
    0 讨论(0)
提交回复
热议问题