Процессинг аннотаций при помощи Groovy на Gradle
Имеется проект, полностью написанный на Java, использующий Gradle, где Groovy используется для процессинга аннотаций при помощи ASTTransformation.
Проблема: Стандартные аннотации от Groovy, например @ToString и @TupleConstructor не генерируют код.
Дополнительный вопрос: Будет ли он работать собственный ASTTransformation и генерировать код через аннотации, если использовать свой проект как зависимость для других Maven проектов? (например, включая в исходники org.codehaus.groovy:groovy-all).
build.gradle (модуль annotationProcessor не имеет доп. изменений в build.gradle):
group "ru.NyashMyash99"
version "2.0.0-DEV"
subprojects {
apply plugin: "groovy"
repositories {
mavenCentral()
}
dependencies {
compileOnly "org.codehaus.groovy:groovy-all:3.0.10"
implementation "org.projectlombok:lombok:1.18.22"
annotationProcessor "org.projectlombok:lombok:1.18.22"
}
compileGroovy.options.encoding = "UTF-8"
java {
sourceCompatibility = JavaVersion.VERSION_16
targetCompatibility = JavaVersion.VERSION_16
}
sourceSets {
main {
java { srcDirs = [] }
groovy { srcDirs = ["src/main/java"] }
}
}
}
Код, на котором проверяю работу:
package ru.nyashmyash99.modules.common.annotation;
import groovy.transform.ToString;
import groovy.transform.TupleConstructor;
@ToString
@TupleConstructor
public class Person {
String firstName;
String lastName;
}
Код, получающийся после компиляции:
package ru.nyashmyash99.modules.common.annotation;
import groovy.transform.ToString;
@ToString
public class Person {
String firstName;
String lastName;
public Person() {
}
}