我有一个Groovy类“ Utils.groovy”,其中包含方法“ makeHttpCall()”。 这是该方法的摘要版本:
static String makeHTTPCall() {
...
request.setHeader(javax.ws.rs.core.HttpHeaders.AUTHORIZATION, authHeader)
...
}
编译器抱怨:
Groovy:在静态作用域中发现了表观变量“ javax”,但 没有引用局部变量,静态字段或类。
如果我将方法设为非静态,它将停止抱怨;
String makeHTTPCall() {
...
request.setHeader(javax.ws.rs.core.HttpHeaders.AUTHORIZATION, authHeader)
...
}
这样,它不会抱怨。为什么编译器会对此抱怨?
请注意,该方法运行没有问题。它作为Jenkins共享库的一部分运行。
谢谢!
编辑:使用
import javax.ws.rs.core.HttpHeaders
给予
Groovy:无法解析类javax.ws.rs.core.HttpHeaders
所以该类不能被编译器解析,但是可以在Jenkins中运行。
答案 0 :(得分:0)
您需要将提供“ javax.ws.rs.core.HttpHeaders”的库添加到项目的构建路径。另外,您可以在类/脚本中使用@Grab。在这种情况下,这可能不是您想要的,因为Jenkins在运行时提供了这种依赖关系。