我有以下 ANT 脚本:
<taskdef name="groovy"
classpath="${antLib}/groovy-all-2.1.3.jar"
classname="org.codehaus.groovy.ant.Groovy" />
<!--<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${antLib}/ant-contrib-0.3.jar"/>
</classpath>
</taskdef>-->
<target name="checkout">
<groovy src="src/name/of/plugin/Checkout.groovy">
def checkoutClass = new Checkout()
checkoutClass.init = {-> true}
<arg line="pom.xml"/>
<arg line="${svn.root}"/>
<arg line="${svn.project.dir}"/>
<arg line="${env.WORKSPACE}"/>
<arg line="${svnLib}"/>
</groovy>
</target>
我正在尝试从 Eclipse 运行此脚本,如您所见,脚本正在调用 Groovy 类。当我执行这个脚本时,我得到的只是一条消息,说构建文件已成功执行并且它运行了 1 秒,这告诉我该类没有执行。
我的班级如下:
public class Checkout{
def pomFile
def svnRoot
def svnProjectDir
def jenkinsWorkspace
def libDir
def queryFile
def ant
public static void main(String[] args) {
pomFile = args[0]
svnRoot = args[1]
svnProjectDir = args[2]
jenkinsWorkspace = args[3]
libDir = args[4]
queryFile = args[5]
new Checkout()
}
def init(){
ant = new AntBuilder()
ant.typedef(resource: 'org/tigris/subversion/svnant/svnantlib.xml'){
classpath {
fileset(dir: libDir, includes: '*.jar')
}
}
ant.echo("INIT")
pomFile = args[0]
svnRoot = args[1]
svnProjectDir = args[2]
jenkinsWorkspace = args[3]
libDir = args[4]
queryFile = args[5]
startCheckout()
}
我不确定是否需要 main 方法,这是我能够从 Eclipse 运行此类的唯一方法。任何想法我做错了什么?