0

我有一个 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 中运行时。

4

1 回答 1

0

您需要将提供“javax.ws.rs.core.HttpHeaders”的库添加到项目的构建路径中。或者,您可以在您的课程/脚本中使用@Grab。在这种情况下,这可能不是您想要的,因为 Jenkins 在运行时提供了该依赖项。

于 2018-11-09T17:45:41.927 回答