Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Consider shading the JGit dependency in Grade plugin

Abierto
#587 8 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
java
Área
build-system

Línea de trabajo

Comienza reproduciendo el conflicto con Spotless 4.0.1, GitPublish y la configuración de Scala scalafmt mostrada; después, inspecciona la configuración de dependencias de JGit del plugin de Gradle. Compara el resultado con las directrices de Gradle para minimizar las dependencias de plugins externos. Se considera terminado cuando GitPublish y Spotless pueden coexistir sin los errores genéricos de enlace de clases reportados debido a versiones incompatibles de JGit.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement
Summary

In Gradle, all plugins share the same classpath. This makes it very hard, if not impossible, to use plugins which depend on different incompatible versions of the same library. This is the case with Spotless and GitPublish:

  1. Spotless depends on 5.7.0.202003110725-r
  2. GitPublish depends on the "latest release" version, which for the latest version of the plugin itself is 5.6.0.201912101111-r

Downgrading the JGit dependency in Spotless, I believe, is not an option, but maybe you could consider shading this dependency, building it into the Gradle plugin JAR file? I believe that the official Gradle guidelines recommend minimizing the number of external dependencies, and shading is one of the ways to mitigate issues like this one.

Gradle version

Happens with any Gradle version, including the latest one, 6.4.1

Spotless version

4.0.1

Operating system and version

Probably not relevant, but macOS 10.15.3

Spotless configuration

Having something as simple as

spotless {
    scala {
        scalafmt("2.3.2").configFile(layout.projectDirectory.file(".scalafmt.conf"))
    }
}

in the build configuration will reproduce the issue,.

Console errors

In all my test cases any Spotless tasks don't cause errors; exceptions can be observed when the GitPublish plugin is used, and they are generic class linkage errors which happen when binary incompatible libraries with the same class names are present in the one classpath.

Lenguaje dominante
Java
Estrellas
5.7k
Forks
560
Merge medio
1 d 9 h
PR fusionados (30 d)
40

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de diffplug/spotless

Todos los issues de diffplug/spotless

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.