Groovy файл не компилируется в Intellij IDEA

У меня есть проект Maven с Java и отличными тестами. В компиляции maven из командной строки все тесты выполняются, но в моем проекте IDEA (который создается автоматически "AutoImport maven projects", IDEA копирует файлы groovy в /target/test-classes без их компиляции.

Мой плагин Gmaven выглядит

    <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <version>1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generateStubs</goal>
                            <goal>compile</goal>
                            <goal>generateTestStubs</goal>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <providerSelection>1.7</providerSelection>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                        <version>${groovy.version}</version>
                    </dependency>
                </dependencies>
            </plugin>

7 ответов

Решение

Решается удалением и созданием с нуля проекта IDEA (файл ipr)

У меня была та же проблема, и мне пришлось изменить в Idea следующую настройку: Настройки-> Компилятор-> Шаблоны ресурсов

Это было !?*. Java

Я изменил это в !? .Джава;!? .form;!? .учебный класс;!? .groovy;!? .scala;!? .flex;!? .kt;!? .clj

Было бы лучше иметь возможность указать это в файле POM, но пока не нашли пути.

Плагин GMaven предназначен только для компиляции Maven. Идея использует Groovy-компилятор, включенный в пакет groovy-all. Чтобы Idea овладел этим, добавьте зависимость проекта, например:

...
  <groupId>yourproject</groupId>
  <artifactId>yourproject</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>${groovy.version}</version>
    </dependency>
  </dependencies>
...

Пожалуйста, измените тип папки groovy файлов на Source Root. Шаг для того же - щелкните правой кнопкой мыши по папке -> выберите опцию - "Сделать каталог как" -> Source Root

Как предложено выше, я изменил это ! .Джава;!? .form;!? .учебный класс;!? .groovy;!? .scala;!? .flex;!? .kt;!? .clj Этот параметр был уже доступен в моем intellij. Код по-прежнему не генерировался. Исправьте это с помощью Setting->Compiler и проверьте параллельный независимый модуль компиляции, после чего он был сгенерирован.

Это похоже на ответ @Opal, но актуально для тестов, как задано в вопросе:

В среде IDE перейдите в Файлы-> Структура проекта-> Настройки проекта-> Модули. В дереве файлов проекта выберите каталог src->test->groovy. Нажмите Alt+T, чтобы сделать каталог groovy корневым источником тестового кода.

Пожалуйста, проверьте настройки | Компилятор | Шаблоны ресурсов. Кажется, что *.groovy как-то там подходит, и поэтому он копируется в вывод, а не компилируется.

Вы должны изменить тип папки groovy файлов, чтобы сделать каталог в качестве исходного Root.

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