Comme (trop ?) souvent avec les builds, le temps parait long… Souvent lancé un peu en tâche de fond, j’aime bien avoir une notification quand ceux ci se terminent.
Gradle propose un plugin par défaut pour enrichir son build de notifications mais on verra comment avoir accès à une panoplie de nouveaux types de notifications !
Gradle Build Announcements
C’est le plugin disponible par défaut dans la distribution de Gradle. Il est lui même basé sur le plugin Announce qui permet d’envoyer des notifications personnalisées pendant un build.
Il supporte 4 types de notifications :
- notify-send
- Snarl
- Growl
Pour l’activer, c’est très simple il suffit de le déclarer dans build.gradle
:
apply plugin: 'build-announcements'
ou de le déclarer directement dans $HOME/.gradle/init.gradle
pour que le plugin soit actif pour tous les projets :
rootProject {
apply plugin: 'build-announcements'
}
C’est vraiment très sympa d’avoir cette fonctionnalité disponible directement sans rien installer… Par contre le choix d’applications est assez limité et les notifications ne sont pas très visuelles (l’icône est toujours la même quelque soit l’état du build par exemple).
Gradle notifier
Comme j’avais déjà mes notifications pour Maven avec maven-notifier, j’en ai profité pour les porter vers Gradle avec gradle-notifier !
Il supporte l’envoi de notifications vers :
Notifier | Screenshot |
---|---|
Growl, pour Windows et OS X. | |
Snarl, pour Windows | |
terminal-notifier, OS X | |
notification center OS X (depuis Mavericks) | |
notify-send pour Linux | |
SystemTray depuis Java 6 | |
Pushbullet | |
Kdialog pour KDE | |
notifu for Windows | |
AnyBar pour OS X et Linux | |
Toaster pour Windows 8 | |
Notify since Java 6 | |
BurntToast for Windows 10 | |
Slack |
Installation
Le plugin peut être ajouté dans la phase d’initialisation ou directement au sein d’un projet.
Script d’initialisation
Pa exemple, créer (ou modifier) le fichier $HOME/.gradle/init.gradle
:
initscript {
repositories {
mavenCentral()
}
dependencies {
classpath group: 'fr.jcgay', name: 'gradle-notifier', version: '1.1.0'
}
}
rootProject {
apply plugin: fr.jcgay.gradle.notifier.GradleNotifierPlugin
}
Script du projet
Dans le script build.gradle
, ajouter :
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath group: 'fr.jcgay', name: 'gradle-notifier', version: '1.1.0'
}
}
apply plugin: 'fr.jcgay.gradle-notifier'
ou en utilisant le mécanisme de plugin introduit depuis Gradle 2.1:
plugins {
id "fr.jcgay.gradle-notifier" version "1.1.0"
}
Configuration
Reposant sur send-notification, la configuration des applications et le choix de celle utilisée pour recevoir les notifications peut se faire dans le fichier $HOME/.send-notification
(Voir les paramètres disponibles dans la documentation).
Ou bien l’outil est configurable directement au sein d’un script Gradle :
notifier {
implementation = 'notificationcenter'
threshold {
time = 10
unit = java.util.concurrent.TimeUnit.SECONDS
}
growl {
port = 23053
host = 'localhost'
password = 'azerty123'
}
Et voilà plus moyen d’oublier son build au fin fond d’une console !