Использование 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 значение, поскольку оно не будет обеспечивать проверку типов во время компиляции.

Другие вопросы по тегам