在IntelliJ IDEA中使用带有@TypeChecked的GroovyDSL:Build Project失败

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

我有一个jenkins.gdsl文件,定义了我在Groovy脚本中使用的一些绑定。另外,我想在我的方法上使用@TypeChecked注释来获得有关构建代码的一些保证。

我的jenkins.gdsl文件看起来像:

contributor(context(scope: scriptScope())) {
 // some definitions
}

然后我的script.groovy看起来像:

@TypeChecked(extensions='jenkins.gdsl')
void doStuff() {
  // ...
}

IntelliJ IDEA自动完成工作,但在构建我的项目时,我的jenkins.gdsl文件中出现错误:

Error:Groovyc: groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.transform.stc.GroovyTypeCheckingExtensionSupport.scriptScope() is applicable for argument types: () values: []

删除(extensions='jenkins.gdsl')摆脱了这个错误,但是在构建时我失去了我的GDSL定义,所以这是不行的。

感觉解决方案将涉及引入IntelliJ的standardDsls。我完全不确定如何做到这一点,或者它是否真的是正确的方法。

intellij-idea groovy dsl static-typing
1个回答
0
投票

@TypeChecked是一个Groovy编译器注释,可以在编译期间运行一些代码。

但gdsl是IntelliJ IDEA特定的脚本,仅供IDE使用,以提供一些完成和其他编码帮助。它与编译器没有任何共同之处,并且它们都不知道彼此之间的任何事情。因此,您可以删除extensions值,因为它不会在编译期间提供任何类型检查。

© www.soinside.com 2019 - 2024. All rights reserved.