9

我升级到 groovy 2 版本,现在我的构建被破坏了。

导入类时失败:groovy.json.JsonSlurper 和 XmlSlurper。

我检查了http://groovy.codehaus.org/gapi/并且找不到这些类了。它们仍然存在于 groovy 2 中吗?还是他们搬到了某个地方?

4

5 回答 5

9

带有 groovy 2的groovy.jar分布式已被拆分为仅包含最少的部分,所有附加模块(XML、SQL、JSON 等)都在单独的 jar 中。但是,在embeddable目录中,您会找到一个 jar 文件groovy-all-2.0.0.jar,其中包含 groovy 和所有模块,就像以前的版本一样。最简单的迁移方法是使用这个 jar 文件。

如果您使用的是 Maven Central,则可以使用artifactIdofgroovy-all来获取所有内容,或者groovy(加上模块)对您的依赖项进行更细粒度的控制。以下是 Maven Central 上可用模块的列表:http ://search.maven.org/#search|ga|1|g%3A%22org.codehaus.groovy%22

于 2012-06-28T15:16:04.547 回答
5

没关系。需要包含 groovy-xml 和 groovy-json jars。这些是从 groovy 的罐子里分离出来的。见: http: //www.infoq.com/articles/new-groovy-20

于 2012-06-28T13:00:44.303 回答
1

当我导入 groovy-json-2.4.3 和 groovy-xml-2.4.3 时,JsonSlurper 被识别。

另请参阅 1.8.0 版本之后的新代码重构:Parsing array of JSON arrays in Groovy

于 2015-07-01T13:34:41.757 回答
0

不要使用“groovy.json.jsonSlurper”,而是使用“net.sf.json.groovy.JsonSlurper”。您的脚本必须正在运行。

于 2021-05-07T12:20:44.687 回答
0

我在 Java 项目的 Gradle 构建中遇到了类似的问题(Gradle 使用 Groovy)。

Gradle 自动停止在类路径中包含本地 Groovy 库。因此,我必须在 build.gradle 文件中包含以下几行(标有 +):

buildscript {
    ext {
        springbootVersion = '2.x.x'
        awsVersion = '1.x.x'

        ...
    }
+    dependencies {
+        classpath localGroovy()
+    }
    repositories ...
}
于 2022-02-15T09:40:56.390 回答