@Grab 无法在 groovy 的 intellij IDE 中工作

问题描述 投票:0回答:3

我对 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吗,有人可以帮忙吗,我被困在这里了。

intellij-idea grails groovy groovy-console groovy-grape
3个回答
10
投票

尝试将插入符号放在 Grapes 依赖项上并按 Alt + Enter,然后获取依赖项。


0
投票

我的第一个想法是放弃 IDE 的问题。 请尝试使用 groovy 解释器在 IDE 之外执行您的 Groovy 程序。 如果问题再次出现,我会检查我的 ~/.groovy/grapeConfig.xml。

是否存在任何连接问题或公司代理会阻止您直接访问 Maven 中央网站? 在这种情况下,您是否应该尝试在 Groovy 调用中配置代理选项? 或者,如果您处于公司环境中,是否有任何类型的公司存储库(例如 Artifactory 或 Nexus)可以尝试使用来规避您的问题?


0
投票

就我而言,我已关闭 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')
])
© www.soinside.com 2019 - 2024. All rights reserved.