Lombok annotation processor not added to modules of a Maven multi-module project
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 50/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- java
- Área
- build-system, tooling
Línea de trabajo
Comienza con la receta EnableLombokAnnotationProcessor y la prueba llamada doesNotAddLombokToModuleWithoutLombok; después, reproduce rewrite:run en la raíz del proyecto multi-módulo y directamente en with-lombok. Compara este comportamiento con las pruebas añadidas en #1031. Se considera terminado cuando los POMs de root y without-lombok permanecen sin cambios, mientras que el annotation processor se añade a with-lombok.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What version of OpenRewrite are you using?
- OpenRewrite v8.83.0
- Maven plugin v6.40.0
- rewrite-migrate-java v3.35.0
How are you running OpenRewrite?
via Maven on a multi-module project
What is the smallest, simplest way to reproduce the problem?
This is a multi-module project with a root and two modules. One of the modules uses lombok.
I set the version of rewrite-migrate-java to 3.31.2 because the behaviour changed from 3.31.1 to 3.31.2 and is the same from 3.31.2 to 3.35.0.
pom.xml of root module:
<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>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>with-lombok</module>
<module>without-lombok</module>
</modules>
<properties>
<maven.compiler.release>21</maven.compiler.release>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.44</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>6.40.0</version>
<configuration>
<exportDatatables>true</exportDatatables>
<activeRecipes>
<recipe>org.openrewrite.java.migrate.EnableLombokAnnotationProcessor</recipe>
</activeRecipes>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-migrate-java</artifactId>
<version>3.31.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
pom.xml of module with-lombok:
<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>
<parent>
<groupId>org.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>with-lombok</artifactId>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
pom.xml of module without-lombok:
<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>
<parent>
<groupId>org.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>without-lombok</artifactId>
</project>
What did you expect to see?
Up to rewrite-migrate-java version 3.31.1, the Lombok annotation processor was added to the parent pom. My understanding is that the intention of #1031 (added in version 3.31.2) was to add the annotation processor only to those modules where lombok is used.
Therefore, I expect
- the pom.xml of the root module to be unchanged,
- the pom.xml of module without-lombok to be unchanged and
- the annotation processor being added to the pom.xml of module with-lombok:
<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>
<parent>
<groupId>org.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>with-lombok</artifactId>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.44</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project>
What did you see instead?
The Lombok annotation processor is added to none of the pom.xml files.
Additional considerations
- The Lombok annotation processor will be added, when I run rewrite:run directly on the module with-lombok. But I doubt that it is the intended behaviour to run the target on each module individually.
- The tests added with #1031 do not truly use a multi-module project. The new test
doesNotAddLombokToModuleWithoutLombokjust uses a set of two (unrelated) modules. - Is traversing the module hierarchy the missing part?
- Lenguaje dominante
- Java
- Estrellas
- 159
- Forks
- 130
- Merge medio
- 6 h 49 min
- PR fusionados (30 d)
- 47
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de openrewrite/rewrite-migrate-java
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
openrewrite/rewrite-migrate-java#1246 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 32/100
openrewrite/rewrite-migrate-java#1227 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
OptionalNotPresentToIsEmpty rewrites `!isPresent()` on a non-`java.util.Optional` type, producing uncompilable `isEmpty()`Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
openrewrite/rewrite-migrate-java#1146 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
openrewrite/rewrite-migrate-java#1069 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
FacesManagedBeansRemoved for Faces 4.0 recipe updatesQuizá libre de nuevo @salaheddinemchich la tomó hace 190 días y no hay ningún pull request abierto. Abiertobug
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
openrewrite/rewrite-migrate-java#1023 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de openrewrite/rewrite-migrate-java
Issues similares
-
enhancement Improvement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
zowe/zowe-client-java-sdk#647 ·
-
NullPointerException when a `DeserializationProblemHandler` returns `null` for `byte[]` (single value unwrapped) and `char[]` elementsPosiblemente ocupada @Marti2203 la tomó hoy. Abierto
Dificultad 2/5 Medio día Aptitud para principiantes 88/100
FasterXML/jackson-databind#6300 ·
Los mantenedores suelen responder en 1 día
-
content good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
cpinitiative/usaco-guide#6699 ·
Los mantenedores suelen responder en 1 día
-
BC remittance upload: a claim MSP refused (S03) is saved with a blank status instead of refused (F)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
carlos-emr/carlos#4933 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/rocketmq-dashboard#6925 ·
Los mantenedores suelen responder en 3 días