Comprender la gestión de la dependencia en Gradle
Los repositorios se utilizan en Gradle para la gestión de la dependencia. Hay dos componentes para las dependencias de gradle: dependencias y publicaciones del proyecto.
Cuando construye un proyecto en Gradle, probablemente necesite bibliotecas de otros desarrolladores. Supongamos que necesita la Biblioteca Apache Commons Lang para manipulaciones de cadenas especiales. Entonces lo necesita en su clase de clases para que su código funcione. Y el apache commons lang podría necesitar bibliotecas adicionales que no sepa. Gradle le permite indicar la dependencia particular que necesita su proyecto y se dirigirá al repositorio especificado como Maven o Ivy y descubra todas las dependencias relacionadas y descargue los archivos y lo configurará automáticamente.
Gradle también tiene la capacidad de publicar sus artefactos. Puede decidir qué significa la publicación para su caso particular. Puede publicarlo localmente o publicarlo en un repositorio de Maven o Ivy.
Ejemplo de repositorio de gradle
Supongamos que queremos usar la clase StringUtils de la biblioteca Apache Commons Lang. Establecamos un director como este:
Hola MundoEn el helloworld.Java, puedes poner el siguiente código:
Org de importación.apache.los comunes.lang3.StringUtils;Y en la construcción.Archivo de Gradle Puede poner lo siguiente:
Aplicar complemento: 'Java'Discutamos lo que está sucediendo en el script de compilación anterior. Le dice a Gradle que busque en el repositorio de Maven para el Commons-Lang3 versión 3.7. También le está diciendo a Gradle que empaquete las dependencias en el archivo JAR. Si elimina las configuraciones de.compilar.recopilar ziptree it línea, entonces tendrá que incluir las dependencias externas en el classpath cuando ejecute el programa.
Ahora desde la carpeta raíz, puede ejecutar la compilación con el comando
$ Gradle Jar
Deberías ver resultados como este:
$ Gradle Jar
Descargar https: // repo.aturdir.apache.org/maven2/org/apache/commons/commons-lang3/3.7/
Commons-lang3-3.7.pom
Descargar https: // repo.aturdir.apache.org/maven2/org/apache/commons/commons-parent/42/
Commons-Parent-42.pom
Descargar https: // repo.aturdir.apache.org/maven2/org/apache/commons/commons-lang3/3.7/
Commons-lang3-3.7.frasco
Construir exitoso en 6s
2 tareas procesables: 1 ejecutado, 1 actualizado
Puedes ejecutar la construcción así:
$ java -cp build/libs/helloworld -1.0.jar helloworld
Hola Mundo!
Hola Mundo!
Si no hubiera incluido las dependencias en su compilación, entonces las clases de StringUtils no se habrían incluido en su helloworld-1.0.archivo jar. Y habrías recibido un error como este:
$ java -cp build/libs/helloworld -1.0.jar helloworld
Hola Mundo!
Excepción en el hilo "principal" Java.lang.NoclassDeffoundError: org/apache/commons/lang3/
StringUtils en Helloworld.Main (Helloworld.Java: 11)
Causado por: java.lang.ClassNotFoundException: orgg.apache.los comunes.lang3.Stringutils
en Java.neto.UrlClassLoader.FindClass (UrlClassLoader.Java: 381)
en Java.lang.Cargador de clases.LoadClass (cargador de clases.Java: 424)
al sol.maga.Lanzador $ AppClassLoader.LoadClass (lanzador.Java: 331)
en Java.lang.Cargador de clases.LoadClass (cargador de clases.Java: 357)
… 1 más
Gradle le facilita el empaquetado de sus dependencias en su paquete.
El uso de repositorios y dependencias de gradle puede simplificar su proceso de gestión de dependencias. No tienes que hacer un seguimiento manual de todo.
Gestión de dependencia de gradle para proyectos Java