grails - ant 的 componentdef 错误

标签 grails ant groovy build

我有一个相对较旧的 Grails 应用程序,它使用 ant 来构建应用程序。在测试服务器中,它构建没有任何问题,但是当我尝试在我的 PC 上运行它时,我收到一致的错误:

Caused by: jar:file:/C:/ant/apache-ant-1.8.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml:37: Problem: failed to create task or type componentdef
    Cause: The name is undefined.
    Action: Check the spelling.
    Action: Check that any custom tasks/types have been declared.
    Action: Check that any <presetdef>/<macrodef> declarations have taken place.
    at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:484)
        at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:416)
        at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:160)
        at org.apache.tools.ant.taskdefs.Antlib.execute(Antlib.java:146)
        at org.apache.tools.ant.taskdefs.Definer.loadAntlib(Definer.java:432)
        ... 63 more

我发现错误发生在构建的以下部分:

<macrodef name="grails">
    <attribute name="script"/>
    <attribute name="args" default="" />
    <sequential>
        <grailsTask script="@{script}" args="@{args}" classpathref="grails.classpath">
            <compileClasspath refid="compile.classpath"/>
            <testClasspath refid="test.classpath"/>
            <runtimeClasspath refid="app.classpath"/>
        </grailsTask>
    </sequential>
</macrodef>

如果我注释掉,就不会再出现错误。

为了进一步引用,这里是整个错误转储:

G:\chp\src\hewittportlet\build.xml:131: The following error occurred while executing this line:
G:\chp\src\hewittportlet\build.xml:53: Unable to start Grails: java.lang.reflect.InvocationTargetExc
eption
        at grails.ant.GrailsTask.runGrails(GrailsTask.java:124)
        at grails.ant.GrailsTask.execute(GrailsTask.java:78)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1329)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1212)
        at org.apache.tools.ant.Main.runBuild(Main.java:801)
        at org.apache.tools.ant.Main.startAnt(Main.java:218)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at org.codehaus.groovy.grails.cli.support.GrailsBuildHelper.execute(GrailsBuildHelper.java:9
4)
        at grails.ant.GrailsTask.runGrails(GrailsTask.java:113)
        ... 31 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.groovy.grails.cli.support.GrailsBuildHelper.execute(GrailsBuildHelper.java:8
8)
        ... 32 more
Caused by: The following error occurred while executing this line:
jar:file:/C:/ant/apache-ant-1.8.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml:37: Problem: failed t
o create task or type componentdef
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

        at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:508)
        at org.apache.tools.ant.taskdefs.Definer.loadAntlib(Definer.java:434)
        at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:281)
        at org.apache.tools.ant.ComponentHelper.checkNamespace(ComponentHelper.java:790)
        at org.apache.tools.ant.ComponentHelper.getDefinition(ComponentHelper.java:260)
        at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:237)
        at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:216)
        at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:414)
        at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:160)
        at groovy.util.AntBuilder.nodeCompleted(AntBuilder.java:186)
        at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
        at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:154)
        at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64)
        at org.codehaus.gant.GantBuilder.invokeMethod(GantBuilder.java:89)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.gant.GantBinding.initializeGantBinding(GantBinding.groovy:109)
        at org.codehaus.gant.GantBinding.this$4$initializeGantBinding(GantBinding.groovy)
        at org.codehaus.gant.GantBinding$this$4$initializeGantBinding.callCurrent(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:
44)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:1
43)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:1
47)
        at org.codehaus.gant.GantBinding.<init>(GantBinding.groovy:42)
        at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRu
nner.java:355)
        at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:
279)
        at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:
205)
        ... 37 more
Caused by: jar:file:/C:/ant/apache-ant-1.8.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml:37: Proble
m: failed to create task or type componentdef
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

        at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:484)
        at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:416)
        at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:160)
        at org.apache.tools.ant.taskdefs.Antlib.execute(Antlib.java:146)
        at org.apache.tools.ant.taskdefs.Definer.loadAntlib(Definer.java:432)
        ... 63 more

Total time: 34 seconds

最佳答案

Grails 与 Ant 1.8 不兼容 - 您需要使用 1.7.x。

关于grails - ant 的 componentdef 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060453/

相关文章:

jquery - grails ajax调用需要在每个模板中重新加载jquery代码

Android Ant 包含 Java 库项目

java - Ant API Commandline.Argument 类中 setLine() 和 setValue() 之间的区别?

jquery - 如何从Grails中的AJAX错误回调中检索错误消息?

grails - grails 3创建子项目

grails - GORM自引用树和性能

ant - 将 PaxExam 与 Bndtools 结合使用

unit-testing - Grails - 如何单元测试 addTo*

jenkins - 从变量 Groovy 获取 YAML 值

Grails 域类字符串属性不区分大小写的搜索