es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo solucionar: No se encontró la configuración con el nombre ‘compileClasspath’?

Como encontré cuando queremos usar una versión específica de una dependencia en Gradle, tenemos 3 formas:

La primera es una versión estricta como esta:

implementation("com.squareup.okhttp3:okhttp") {
   version { 
       strictly("3.12.12")
   }
} 

Esta forma no funciona en okhttp para mí y no sé por qué.

La segunda forma es usar force, así:

implementation("com.squareup.okhttp3:okhttp:3.12.12") {
   isForce = true
}

Esta forma funciona para mí, pero está obsoleta.

La tercera forma es usar resolutionStrategy, así:

configurations {
    "compileClasspath" {
        resolutionStrategy.force("com.squareup.okhttp3:okhttp:3.12.12")
    }
}

De esta forma me encontré con este error:

Configuration with name 'compileClasspath' not found.

Entonces, mi pregunta es, ¿cómo puedo usar la tercera forma? ¿si está ubicada al final del bloque de dependencias es suficiente?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para utilizar la tercera forma utilizando resolutionStrategy, debes agregarlo al archivo build.gradle fuera de cualquier bloque de dependencias. Aquí tienes un ejemplo:

    dependencies {
        implementation("com.squareup.okhttp3:okhttp")
    }
    
    configurations.all {
        resolutionStrategy {
            force("com.squareup.okhttp3:okhttp:3.12.12")
        }
    }
    

    Ten en cuenta que el bloque resolutionStrategy debe estar fuera del bloque de dependencias y dentro del bloque configurations. Este enfoque debería forzar correctamente la versión específica de la dependencia, incluso si hay dependencias transitivas que entran en conflicto con ella.

Comments are closed.