我对 groovy 很陌生,正在练习使用 http-builder 包进行 REST 调用,我正在尝试使用 @Grab 注释添加依赖项,但它不会下载依赖项,注释不起作用,
我的代码:
import groovyx.net.http.ContentType
import groovyx.net.http.RESTClient
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' )
def restClient = RESTClient('http://api.icmdb.com')
restClient.contentType = ContentType.JSON
restClient.get(path:'/jokes/random'){response,json->
println response.status
println json
}
我遇到的异常:
Caught: groovy.lang.MissingMethodException: No signature of method: com.groovy.practice.RESTCall.RESTClient() is applicable for argument types: (String) values: [http://api.icmdb.com]
groovy.lang.MissingMethodException: No signature of method: com.groovy.practice.RESTCall.RESTClient() is applicable for argument types: (String) values: [http://api.icmdb.com]
所以基本上它没有下载 http-builder,因此它没有找到 RESTClient 类型的签名。
我的常规版本是:2.6.0-alpha-1 Intellij 版本:2017.2.3
有什么可以在groovy或intellij IDE中启动Grape吗,有人可以帮忙吗,我被困在这里了。
尝试将插入符号放在 Grapes 依赖项上并按 Alt + Enter,然后获取依赖项。
我的第一个想法是放弃 IDE 的问题。 请尝试使用 groovy 解释器在 IDE 之外执行您的 Groovy 程序。 如果问题再次出现,我会检查我的 ~/.groovy/grapeConfig.xml。
是否存在任何连接问题或公司代理会阻止您直接访问 Maven 中央网站? 在这种情况下,您是否应该尝试在 Groovy 调用中配置代理选项? 或者,如果您处于公司环境中,是否有任何类型的公司存储库(例如 Artifactory 或 Nexus)可以尝试使用来规避您的问题?
就我而言,我已关闭 IntelliJ,然后删除
rm -rf ~/.m2/repository ~/.groovy/grapes
,一旦打开 IntelliJ,则所有选项均已选中,缓存无效。
然后,当我将鼠标悬停在@Grab 上时,将会显示一个灯泡。如果你点击灯泡,就会有一个选项“抢夺文物”。
@GrabResolver(name = "maven-repository", root = "https://artifacts.company.internal/artifactory/maven-all")
@Grapes([
@Grab('commons-primitives:commons-primitives:1.0'),
@Grab('org.springframework:spring-orm:5.2.8.RELEASE')
])