Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

282
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!