Repositorios de graduación

Repositorios de graduación
Gradle busca dependencias externas en los repositorios. Se organiza un repositorio de Gradle utilizando grupo, nombre y versión. Gradle es compatible con diferentes formatos de repositorio como Maven e Ivy.

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 Mundo
|- construir.graduarse
'- SRC
|- Principal
'- Java
'-- Hola Mundo
'-- Hola Mundo.Java

En el helloworld.Java, puedes poner el siguiente código:

Org de importación.apache.los comunes.lang3.StringUtils;
clase pública HelloWorld
public static void main (string [] args)
Saludos de cadena = "Hola mundo!";
Sistema.afuera.println (saludos);
Sistema.afuera.println (stringUtils.swapcase (saludos));

Y en la construcción.Archivo de Gradle Puede poner lo siguiente:

Aplicar complemento: 'Java'
versión = '1.0 '
repositorios
mavencentral ()

dependencias
grupo de compilación: 'org.apache.Commons ', Nombre:' Commons-Lang3 ', Versión:' 3.7 '

frasco
De las configuraciones.compilar.coleccionar Ziptree it

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.

Conclusión

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.

Estudio adicional:

Gestión de dependencia de gradle para proyectos Java