Использование GroovyDSL с @TypeChecked в IntelliJ IDEA: сборка проекта завершается неудачно - PullRequest
0 голосов
/ 01 марта 2019

У меня есть файл jenkins.gdsl, определяющий некоторые привязки, которые я использую в своем скрипте Groovy.Кроме того, я хотел бы использовать аннотацию @TypeChecked в моих методах, чтобы получить некоторые гарантии о встроенном коде.

Мой jenkins.gdsl файл выглядит следующим образом:

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

И затемmy 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 .Я не совсем уверен, как это сделать, или это действительно правильный подход.

1 Ответ

0 голосов
/ 05 марта 2019

@TypeChecked - это аннотация компилятора Groovy, которая может запускать некоторый код во время компиляции.

Но gdsl - это специфичный для IntelliJ IDEA сценарий, который используется только в среде IDE для обеспечения некоторого завершения и другой помощи при кодировании.Это не имеет ничего общего с компилятором, и никто из них ничего не знает друг о друге.Таким образом, вы можете удалить значение extensions, так как оно не будет обеспечивать проверку типов во время компиляции.

...