Register dependencies task produces output outside of the configured build directory
- Lenguaje dominante
- Java
- Estrellas
- 5.6k
- Forks
- 559
- Merge medio
- 1 d 14 h
- PR fusionados (30 d)
- 43
Descripción
This issue is about the Gradle plugin.
When a project’s build directory is modified by a plugin, then, depending on the order of plugins application, the Spotless plugin may create the `spotless-register-dependencies` file in a wrong location.
This most likely happens because the [register dependencies task’s](https://github.com/diffplug/spotless/blob/4600bc36f7f23522037b3febf6a98ba6131cfbed/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/RegisterDependenciesTask.java#L78-L83) output file property is not lazy, and therefore is configured/resolved to its final value during the configuration phase, when the plugin is applied, which introduces a dependency on the order of plugins application — if the plugin which configures the build directory is applied later than Spotless, then Spotless will use incorrect value of the build directory.
As a general rule, in Gradle it is recommended to use [lazy properties](https://docs.gradle.org/current/userguide/lazy_configuration.html) for all kinds of properties which are exposed on tasks and extensions, especially input/output files or directories, and providers returning files/directories are usually obtained from `project.layout`.
- Gradle version: 7.4.2
- Spotless plugin version: 6.4.2
Guía de contribución
Línea de trabajo
Comienza con la propiedad del archivo de salida enlazada en plugin-gradle/src/main/java/com/diffplug/gradle/spotless/RegisterDependenciesTask.java y luego sigue cómo se obtiene el directorio de compilación durante la configuración del plugin. Verifica la ubicación de salida de la tarea cuando otro plugin cambia el directorio de compilación después de aplicar Spotless; terminado significa que el archivo register-dependencies sigue el directorio configurado independientemente del orden de los plugins.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- build-system
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 48/100