Внесите Intellij IDE, выполнив обработку аннотации Kotlin / Java при изменении исходных файлов Kotlin

Недавно я начал использовать Kotlin v1.2 с Intellij IDEA v2017.3.

Я реализовал в Kotlin обработчик аннотаций, который записывает файл ресурсов в META-INF, когда класс аннотируется с поддерживаемым типом аннотации.

Я вижу, что обработчик аннотации работает с другим проектом Maven, который использует реализацию как зависимость. Если я запустил mvn clean compile , файл в META-INF будет корректно сгенерирован в target / classes / META-INF .

Моя проблема заключается в том, что Intellij не запускает обработчик аннотации при изменении исходного файла. Например, если я переименую аннотированный класс Котлина. Файл ресурсов не восстанавливается и не обновляется. (Я еще не видел обработчик аннотаций от Intellij …)

Я также включил обработку аннотаций и сконфигурировал «получение процессоров из класса проекта» в среде IDE, как описано здесь .

Я импортировал проект как проект Maven, вот мой pom.xml – как я уже сказал: он работает при создании с Maven:

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>usage</artifactId> <version>1</version> <properties> <kotlin.version>1.2.0</kotlin.version> </properties> <build> <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory> <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory> <plugins> <plugin> <artifactId>kotlin-maven-plugin</artifactId> <groupId>org.jetbrains.kotlin</groupId> <version>${kotlin.version}</version> <configuration> <jvmTarget>1.8</jvmTarget> </configuration> <executions> <execution> <id>kapt</id> <phase>generate-sources</phase> <goals> <goal>kapt</goal> </goals> <configuration> <sourceDirs> <sourceDir>src/main/kotlin</sourceDir> </sourceDirs> <annotationProcessors> <annotationProcessor>org.example.MyProcessor</annotationProcessor> </annotationProcessors> </configuration> </execution> <execution> <id>compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile</id> <phase>test-compile</phase> <goals> <goal>test-compile</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>${kotlin.version}</version> </dependency> <!-- Dependency containing the annotation processor --> <dependency> <groupId>org.example</groupId> <artifactId>processor</artifactId> <version>1</version> </dependency> <!-- Test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-test</artifactId> <version>${kotlin.version}</version> <scope>test</scope> </dependency> </dependencies> </project> 

Intereting Posts
Kotlin: Дженерики, отражение и различие между типами T и T: Любые Как добавить слушателя Onclick в RecyclerView в Android Studio с Kotlin? Дезертициализация поля, которое может быть одним из двух типов данных с использованием Moshi Используя черты с классами данных в Котлине? Использовать NumberFormat.getCurrency в Kotlin Android Когда лямбда-параметры должны быть noinline в Котлин? kotlin внутренний класс can not доступ к закрытому методу снаружи? Заменить textView для NumberPicker – Android Kotlin – Как добавить OnPageChangeListener в ViewPager Не удалось найти метод springBoot () для аргументов – Spring Boot с использованием Kotlin Получите множественное число и сингл от блока Chrono Time Для функции Kotlin, используемой в качестве выражения, существует ли краткий способ работы и возврата значения? почему не могу я иногда пропускаю интерфейс в котлин? Android Firebase auth: класс дескриптора локального модуля для com.google.android.gms.crash и com.google.firebase.auth не найден Как заставить Kotlin прекратить использование аргумента для неправильного класса (Интерфейс)