¿Kotlin no ve los accesorios de Java Lombok?

Usando la versión 1.0.0 de Kotlin (comstackndo en IntelliJ 15).

println(myPojoInstance.foo) 

Cuando intenta comstackr código (en IntelliJ o Gradle) que hace reference a POJOs basados ​​en Lombok, da el error "No se puede acceder a 'foo': es 'privado' en" MiPojo ". Lo cual es cierto, todos son privados y mi object tiene @Value @Builder para annotations lombok.

Intenté llamar específicamente a getFoo (), pero dice "reference no resuelta para getFoo". ¿Hay algún truco para que Kotlin sepa cómo manejar las annotations de lombok?

En general, no, no es así. La razón de ese comportamiento es que Lombok es un procesador de annotations para javac, pero cuando el comstackdor de kotlin se ejecuta también usa javac pero sin procesamiento de anotación, por eso kotlin no ve las declaraciones que aún no se generaron.

La única solución por el momento es definir un estricto order de compilation: Java primero y después de eso kotlin. Desafortunadamente, este enfoque tiene una gran desventaja: en este caso no se puede usar el código de Kotlin de Java. Para solucionarlo, puede necesitar un proyecto multimodular que pueda causar mucho dolor

Como se mencionó en los comentarios anteriores, delombok ayuda. En caso de maven build sería:

 <plugin> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven-plugin</artifactId> <version>${lombok.version}.0</version> <executions> <execution> <id>delombok</id> <phase>generate-sources</phase> <goals> <goal>delombok</goal> </goals> <configuration> <formatPreferences> <javaLangAsFQN>skip</javaLangAsFQN> </formatPreferences> <verbose>true</verbose> </configuration> </execution> <execution> <id>test-delombok</id> <phase>generate-test-sources</phase> <goals> <goal>testDelombok</goal> </goals> <configuration> <verbose>true</verbose> </configuration> </execution> </executions> </plugin>