Использование GroovyDSL с @TypeChecked в IntelliJ IDEA: сборка проекта завершается неудачно
У меня есть 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 DSL. Я не совсем уверен, как это сделать, или это действительно правильный подход.
0 ответов
@TypeChecked
является аннотацией Groovy-компилятора, которая может запускать некоторый код во время компиляции
Но gdsl - это специфичный для IntelliJ IDEA сценарий, который используется только в среде IDE для обеспечения некоторого завершения и другой помощи при кодировании. Это не имеет ничего общего с компилятором, и никто из них ничего не знает друг о друге. Таким образом, вы можете удалить extensions
значение, поскольку оно не будет обеспечивать проверку типов во время компиляции.