0

提出这个问题我觉得有点傻,但我别无选择。

基本上,我在“让我们学习 groovy”项目中有这个:

package com.mypackage.markupexercise

import groovy.xml.MarkupBuilder

println "Hello MarkupBuilder"

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)

builder.records() {
    example(id:1)
}

我收到以下编译错误:

<path>\markupbuilderexercise\Main.groovy: 3: unable to resolve class groovy.xml.MarkupBuilder
 @ line 3, column 1.
   import groovy.xml.MarkupBuilder
   ^

1 error

现在,我已经看到 [this question][1],并且我已经导入了 groovy-xml-3.09.jar 文件(通过右键单击项目 -> 属性 -> Java 构建路径 -> 添加罐子...)

“问题”选项卡上没有任何内容,如果我尝试通过 groovy 控制台运行,则会收到以下错误:

groovy.lang.MissingMethodException: No signature of method: groovy.xml.MarkupBuilder.records() is applicable for argument types: (com.neuro.groovyhelloworld.markupbuilderexercise.Main$_run_closure1) values: [com.neuro.groovyhelloworld.markupbuilderexercise.Main$_run_closure1@2e757861]

    at com.neuro.groovyhelloworld.markupbuilderexercise.Main.run(Main.groovy:10)

    at com.neuro.groovyhelloworld.markupbuilderexercise.Main.main(Main.groovy)

我的看法是我没有以正确的方式添加依赖项,但我是一名 Java 开发人员,依赖项要么是我所做的,要么只是依赖于 Maven/Gradle,所以我有点没有想法这里。

我错过了什么?

  [1]: https://stackoverflow.com/questions/59132101/eclipse-groovy-unable-to-resolve-class
4

1 回答 1

1

选择Run As > Groovy Console然后运行脚本时,我看到了同样的问题。对于以下源的Run As > Groovy Script ,它确实可以正常工作——我使用了 grab,所以我不需要将 groovy-xml 添加到我的项目的类路径中:

@Grab('org.codehaus.groovy:groovy-xml:3.0.9')
import groovy.xml.MarkupBuilder

def writer = new StringWriter()
new MarkupBuilder(writer).tap {
  records {
    example(id:1)
  }
}

print writer

我得到以下输出:

<records>
  <example id='1' />
</records>

您还可以使用Run As > Java Application构建项目并运行脚本。

于 2021-09-23T21:09:47.077 回答