在groovy taskdef中访问ant属性会产生Null Pointer Exception

时间:2012-01-30 17:20:18

标签: ant groovy

我正在尝试执行以下代码,但我得到空指针异常。

 <property name="from" value="from"/>
            <property name="to" value="to"/>


            <taskdef name="groovy"
                classname="org.codehaus.groovy.ant.Groovy"
                classpath="G:\Tibco_Training\groovy-binary-1.8.5\groovy-all-1.6.5.jar" />

            <taskdef resource="net/sf/antcontrib/antlib.xml"/>
        <groovy>
                class MoveDir extends org.apache.tools.ant.Task {
                    //def from = 'from'
                    //def to = 'to'
                    public void execute() { 
                        new File(properties.from).eachFileMatch ~/.*/, { file ->
                        file.renameTo(new File(properties.to , file.getName()))
                        println "Moving file: $file.name from: " + from + "  to: " + to }
                    }
        }

                project.addTaskDefinition('movedir', MoveDir)
            </groovy>

            <movedir />

如果我不在groovy中使用ant属性,那么代码工作正常,但是当我使用ant属性来指定目录时,它会给出空指针异常。我传递错误的值或错误的语法是原因。

1 个答案:

答案 0 :(得分:0)

语法错误,您必须使用properties.'to'properties.'from'