Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

283
Vistas
Encuentra si existe un artefacto en el repositorio remoto

¿Cómo verifico si existe un artefacto en un repositorio remoto usando gradle?

No he podido encontrar ningún complemento para gradle que logre esto.

Tuve la idea de crear una función en build.gradle que verifique si existe la URL del repositorio. Pero esta no parece la forma correcta de hacerlo.

 Boolean ifExists = new URL(url).openConnection().with { requestMethod = 'HEAD' connect() responseCode == 200 }

Cualquier sugerencia sería muy apreciada.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Con Kotlin DSL, puede verificar si el artefacto existe en alguno de los repositorios registrados de la siguiente manera:

 import com.github.kittinunf.fuel.httpGet buildscript { dependencies { "classpath"("com.github.kittinunf.fuel:fuel:2.3.1") // you may use any other HTTP-client if you want } } tasks { register("checkDependencies") { doFirst { project.configurations["implementation"].dependencies.forEach { dependency -> project.repositories.forEach { repository -> val repositoryURL = (repository as MavenArtifactRepository).url val artifactURL = "$repositoryURL${dependency.group?.replace('.', '/')}/${dependency.name}/${dependency.version}/${dependency.name}-${dependency.version}.jar" val (_, response, _) = artifactURL.httpGet().response() println("$dependency: ${response.statusCode}") } } } } }
over 4 years ago · Santiago Trujillo Denunciar

0

No parece que haya un complemento oficial de Gradle para admitir la verificación de la existencia de un artefacto. Sin embargo, debería poder lograr esto ejecutando un comando curl en un proceso Java: explicación de las banderas Curl:

-Marco solo para encabezados.

-s para el modo silencioso. (Sin medidor de programa ni mensajes de error)

Su comando puede verse ligeramente diferente al que se muestra a continuación si necesita autenticarse en el recurso del artefacto, pero asumo que ya lo ha tenido en cuenta en su URL:

 String curlCommand= "curl -I -s " + url + " | grep HTTP"; Process process = Runtime.getRuntime().exec(curlCommand); process.getInputStream();

Si se encuentra su artefacto, el proceso imprimirá "HTTP/1.1 200 OK"

De lo contrario, "HTTP/1.1 404 Not Found"

over 4 years ago · Santiago Trujillo Denunciar

0

no estoy seguro si esto ayuda, https://github.com/ben-manes/gradle-versions-plugin . puede volver a cablear para especificar las versiones inestables que le gustaría descartar.

o fuerce esto mirando siempre las últimas versiones https://github.com/patrikerdes/gradle-use-latest-versions-plugin

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda