lunes, 23 de mayo de 2022

Gradle-7 (7) Gradle Multiproyecto (1) Introduccion

 0. Introducción

Se agradece a tomgregory sus claras explicaciones

1. Crear un proyecto gradle en Eclipse

Como es habitual utilizamos el menú: File -> New -> Gradle -> Gradle Project

Le damos un nombre del projecto por ejemplo "Multiproject"

Es importante configurar el workspace


y asegurarnos que tengamos Gradle 7.4.2 y java igual o superior a 16



Y observamos que nos ha preparado el entorno para tener un Multiproyecto, pues nos ha creado un subproyecto llamado lib.


Analicemos lo que tenemos:

En el diectorio principal (Multiproject) tenemos:

  1. La carpeta del subproyecto hijo (lib)
  2. La carpeta gradle
  3. 3 ficheros: gradlew, gradle.bat y settings.gradle
En el proyecto hio (lib) tenemos una estructura de proyecto java normal, y el fichero "build.gradle"

Para que gradle sepa cuales son sus subproyectos, tenemos que indicarle en "settings.gradle" los subproyectos:

rootProject.name = 'Multiproject'
include('lib')


2. Crear un subproyecto 

Vamos a guradarnos el subproyecto "lib" como modelo para generar otros subproyectos.

Desde eclipse creamos una nueva carpeta llamada por ejemplo "WS", justo debajo de "Multiproject" (por tanto al mismo nivel que "lib"), y copiamos desde la carpeta "lib" estos ficheros:

  • carpeta src
  • fichero build.gradle

Editamos el "settings.gradle" y le añadimos 'WS' al include

include('lib', 'WS')

Y nos situamos sobre el proyecto "Multiproject" y con el boton derecho "Gradle"->"Refresh gradle project", y a veces desaparece, pero si le damos a F5 ya nos aparece "WS" como subproyecto

Si no apareciera, se podría abrir una 

Para ello abrimos una ventana de terminal, nos situamos en la carpeta "Multiproject" y ejecutamos 

./gradlew projects

y después 

./gradlew build

3. Dependencias entre proyectos.

Supongamos que hemos creados 2 subproyectos

  • A000-Basic
  • D002-Sedipualba-WS-Shdw
Y el primero es una dependencia del segundo
entonces en el "build.gradle" del segundo proyecto le indicamos.

api(project(":A000-Basic"))




No hay comentarios :

Publicar un comentario