Groovy + Google = Groogle
Groogle Gradle Plugin
GroogleGradle es un plugin para Gradle que nos permite crear tareas en nuestro build.gradle
que se integran con los
servicios de Google. Por ejemplo dispondremos de una tarea que nos permitirá copiar el contenido de una carpeta que
se haya ubicada en Google Drive
al directorio de trabajo del proyecto
Plugin
Lo primero que deberemos incluir es el plugin groogle
junto con el resto de plugins del proyecto.
Así mismo, para poder acceder a los servicios de Google debemos proporcionar unas credenciales que debemos haber obtenido desde la consola de Google. Dichas credenciales las podemos proporcionar como un fichero, como una cadena de texto o como una variable de entorno
plugins {
id 'com.puravida.gradle.groogle'
}
groogle{
credentials 'GROOGLE_CREDENTIALS' (1)
credentials '{"type": "service_account", "project_id": ...}' (2)
credentials file('credentials.json') (3)
credentials 'credentials.json' (4)
appName 'gradle-groogle'
scopes DRIVE, SHEET
}
plugins {
id 'com.puravida.gradle.groogle'
}
groogle{
credentials 'groogle-688bcfc07d1b.json'
asService true
scopes DRIVE, SHEET
}
1 | Credenciales como cadena en variable de entorno |
2 | Credenciales como cadena |
3 | Credenciales en un fichero |
4 | Credenciales en un fichero indicando la ruta al mismo |
fromDrive
Una vez que tengamos añadido el plugin, tendremos una task
del tipo FromDriveTask
que nos permitirá copiar el
contenido de una carpeta remota.
Esta tarea puede servir, por ejemplo, para obtener contenido que no se encuentra en el proyecto y que tiene que ser usado por este como imágenes, documentos, etc.
fromDrive{
from '1-amEeJa6KCVJbF_oMdSacf-NlCiIOWCu' (1)
into file('docs') (2)
into 'docs' (3)
}
1 | Indicar el ID de la carpeta Google a copiar |
2 | indicar un directorio como fichero |
3 | indicar un directorio mediante una cadena |
toDrive
Una vez que tengamos añadido el plugin, tendremos una task
del tipo ToDriveTask
que nos permitirá copiar el
contenido de una carpeta local en nuestro drive.
Esta tarea puede servir, por ejemplo, para guardar los resultados de un build en una carpeta Drive compartida.
toDrive{
into 'test-upload-${new Date().format('yyyy-mm-dd')}' (1)
from file('test') (2)
from 'test' (3)
}
1 | Indicar el nombre de la carpeta Google a crear, incluso generada dinámicamente |
2 | indicar un directorio como fichero |
3 | indicar un directorio mediante una cadena |