Aller au contenu
  1. Articles/

Notifications de bureau pour Gradle

Article publié il y a 11 ans : les outils et les commandes décrits ont pu changer depuis.

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 :

  • twitter
  • notify-send
  • Snarl
  • Growl

growl.success
growl.failure

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 :

NotifierScreenshot
Growl, pour Windows et OS X.
Growl
Snarl, pour Windows
Snarl
terminal-notifier, OS X
terminal-notifier
notification center OS X (depuis Mavericks)
notification-center
notify-send pour Linux
notify-send
SystemTray depuis Java 6
System Tray
Pushbullet
pushbullet
Kdialog pour KDE
Kdialog
notifu for Windows
notifu
AnyBar pour OS X et Linux
anybar
Toaster pour Windows 8
Toaster
Notify since Java 6
Notify
BurntToast for Windows 10
BurntToast
Slack
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 !

Partager

Articles connexes