如何在JMeter环境中为纯groovy脚本使用@CompileStatic?

如何在JMeter环境中为纯groovy脚本使用@CompileStatic?,groovy,jmeter,Groovy,Jmeter,我想在jmeter环境中利用groovy脚本中的@CompileStatic注释。它有助于在编译时发现问题 我已经开始在我的类中使用它,但我不知道如何在普通groovy脚本中使用它。例如,我有下面的脚本,其中有log和vars变量,它们是JMeter环境中的一种全局变量。因此,最终它们将被使用 如果我将@CompileStatic注释添加到下面的方法中,IntelliJ会将所有内容绘制为红色,并且编译将失败,因为编译器不知道这些变量是什么 因此,问题是在脚本中如何告诉编译器这些变量的类型和类型,

我想在jmeter环境中利用groovy脚本中的
@CompileStatic
注释。它有助于在编译时发现问题

我已经开始在我的类中使用它,但我不知道如何在普通groovy脚本中使用它。例如,我有下面的脚本,其中有
log
vars
变量,它们是JMeter环境中的一种全局变量。因此,最终它们将被使用

如果我将
@CompileStatic
注释添加到下面的方法中,IntelliJ会将所有内容绘制为红色,并且编译将失败,因为编译器不知道这些变量是什么

因此,问题是在脚本中如何告诉编译器这些变量的类型和类型,以及如何为脚本提供实例

很抱歉,我根本不是一个优秀的专家

void checkingInputParameters() {

    log.info("variable value:" + vars.get("some_variable_name"))
}
checkingInputParameters()

我认为你走错了路, 因为是一个groovy编译器选项

让Groovy编译器使用Java风格的编译时检查,然后执行静态编译,从而绕过Groovy元对象协议

JMeter(我假设您在Intellij中的测试)使用的是java编译器

我认为你不应该把它们混在一起做测试

在JMeter中使用复选框/功能

检查缓存编译脚本(如果可用)


我认为你走错了路, 因为是一个groovy编译器选项

让Groovy编译器使用Java风格的编译时检查,然后执行静态编译,从而绕过Groovy元对象协议

JMeter(我假设您在Intellij中的测试)使用的是java编译器

我认为你不应该把它们混在一起做测试

在JMeter中使用复选框/功能

检查缓存编译脚本(如果可用)


我没有提到它是存储JSR233脚本的groovy maven模块。当它编译时,它将是groovy。IntelliJ知道它是groovy。@SayusiAndo最终你想在JMeter环境中执行它,不是吗?这将是通过ScriptEngineEyes执行groovy的Java代码,这是正确的。但是,在groovy进入JMeter实例并编译成字节码之前,maven会将其编译成groovy代码,这是我想要捕捉所有可能的输入错误、没有向函数添加足够的参数等问题的阶段。就像在强类型语言的情况下一样。@SayusiAndo好的,要回答您的问题,请将
ApacheJMeter_core.jar
添加为依赖项,这样IntelliJ将识别
JMeterVariables
类和
slf4j-api-1.7.25.jar
用于
Logger
,如果方法上没有
@CompileStatic
,它会识别。如果方法上有
@CompileStatic
注释,则每次注释都标记为错误。一切都是红色,这意味着很难确定哪个红色标记是错误,哪个不是错误。我没有提到它是一个groovy maven模块,JSR233脚本存储在该模块中。当它编译时,它将是groovy。IntelliJ知道它是groovy。@SayusiAndo最终你想在JMeter环境中执行它,不是吗?这将是通过ScriptEngineEyes执行groovy的Java代码,这是正确的。但是,在groovy进入JMeter实例并编译成字节码之前,maven会将其编译成groovy代码,这是我想要捕捉所有可能的输入错误、没有向函数添加足够的参数等问题的阶段。就像在强类型语言的情况下一样。@SayusiAndo好的,要回答您的问题,请将
ApacheJMeter_core.jar
添加为依赖项,这样IntelliJ将识别
JMeterVariables
类和
slf4j-api-1.7.25.jar
用于
Logger
,如果方法上没有
@CompileStatic
,它会识别。如果方法上有
@CompileStatic
注释,则每次注释都标记为错误。一切都是红色意味着很难确定哪个红色标记是错误,哪个不是。