Eliminar slf4j del plugin de Gradle.
He creado un plugin de Gradle. Y el archivo build.gradle para él se ve así:
plugins {
id 'java'
id 'java-gradle-plugin'
id 'maven-publish'
}
apply plugin: 'maven'
group 'test.plugin'
version '9.0'
sourceCompatibility = 11.0
repositories {
mavenCentral()
}
dependencies {
implementation gradleApi()
}
Cuando intento aplicar este plugin en otro proyecto, las pruebas unitarias fallan debido al siguiente error:
java.lang.ClassCastException: class org.gradle.internal.logging.slf4j.OutputEventListenerBackedLogger cannot be cast to class ch.qos.logback.classic.Logger (org.gradle.internal.logging.slf4j.OutputEventListenerBackedLogger y ch.qos.logback.classic.Logger están en un módulo sin nombre del cargador ‘app’)
Y el plugin que creé también tiene slf4j debido a Gradle. Necesito excluir slf4j de mi plugin. No puedo encontrar respuestas útiles en Google.
davy.ai
Para excluir slf4j de tu plugin gradle, puedes agregar el siguiente fragmento de código a tu archivo build.gradle.
Este código excluirá slf4j-api de las dependencias del plugin e importará la biblioteca slf4j-simple en su lugar, que no entra en conflicto con otros proyectos que puedan tener slf4j en sus dependencias. Al hacer esto, deberías ser capaz de solucionar el problema de que tus pruebas unitarias fallen debido a una excepción de lanzamiento de clase.