Неожиданная ошибка «AST transform» при входе в систему. groovy - PullRequest
0 голосов
/ 04 марта 2020

Некоторое время go я переключался с logback. xml на logback. groovy как способ настройки ведения журнала для моего проекта Gradle.

До сих пор это работало нормально.

Мне только что пришлось воссоздать свои проекты в новом рабочем пространстве, используя ту же версию Eclipse, 2019-06, с той же версией Groovy, 2.5.9.

Для некоторых причина первой строки logback. groovy теперь помечает ошибку. Начальные строки файла:

context.getFrameworkPackages().addAll([
    "sun.reflect",
    "java.lang.reflect",
    "org.codehaus.groovy",
    "groovy.lang.MetaMethod",
    "jdk.internal.reflect"
])

Отмеченные ошибки: / 1010 *

Multiple markers at this line
    - Groovy:Unexpected problem with AST transform: 
     null
    - implements groovy.lang.Script.run

О, дорогой: даже когда я закомментирую все вышеупомянутые строки в вверху файла я все еще получаю ту же самую ошибку, в том же месте , говоря то же самое.

позже

Теперь я получаю ту же ошибку для других. groovy файлов в этом проекте. Но я сузил это явление.

В build.gradle у меня есть следующая строка:

testImplementation 'org.spockframework:spock-core:1.2-groovy-2.5'

Если эта строка закомментирована, и я выполняю Refre sh Gradle, ошибка не возникает; если я раскомментирую вышеприведенную строку и сделаю Refre sh Gradle, произойдет ошибка; если я снова закомментирую это и снова перефразирую sh, ошибка исчезнет.

Также стоит знать, что в этой настройке Eclipse у меня установлен плагин Groovy -Eclipse. По причинам, которые я не понимаю, это настаивает на том, что «рабочая область Groovy уровень компилятора» - это версия 3.0.1. Если я установлю его на 2,5, вся установка Eclipse будет «повреждена»: Project Explorer не будет отображаться и т. Д. c.

Я предполагаю, что проект Gradle обнаруживает, что эта зависимость Spock совместима только с Groovy 2.5, и что происходит несоответствие (хотя в Window -> Prefs -> Groovy -> Compiler я снял флажок «Включить проверку на несоответствия между проектом и рабочим пространством Groovy уровнями компилятора»).

Ирония в том, что мой проект Gradle не обращает внимания на версию Groovy операционной системы или рабочей области: оболочка Gradle определяет, какой Groovy запускает build.gradle, и следующую строку в сборке .gradle определяет версию Groovy для приложения и тестовых файлов (которые я пишу в Groovy, а не Java):

implementation 'org.codehaus.groovy:groovy-all:2.5.9'

Кроме того, это самый высокий доступный уровень Groovy для Спока 1.2. модуль. Спок 2 имеет версию, в которой версия Groovy равна 3, но я не совсем готов перейти на Спок 2.

...