Desktop notifications for Gradle
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle/wrapper Upgrade to Gradle 4.10.2 Oct 28, 2018
src Upgrade to Gradle 4.10.2 Oct 28, 2018
.editorconfig Add .editorconfig Apr 29, 2015
.gitignore Update Gradle ignored files Nov 13, 2016
.travis.yml Use Oracle JDK 8 on Travis CI Oct 7, 2017
CHANGELOG.md Release v3.0.0 Oct 28, 2018
LICENSE Add LICENSE Apr 29, 2015
README.md Release v3.0.0 Oct 28, 2018
build.gradle Use send-notification v0.15.0 Oct 28, 2018
gradlew Upgrade to Gradle 4.0.1 Jul 9, 2017
gradlew.bat Upgrade to Gradle 3.1 Nov 13, 2016
settings.gradle Init build Apr 30, 2015

README.md

Gradle notifier

Desktop notifications for Gradle.
A notification is sent when a build ends indicating if the build has failed or succeeded.

Compatibility

Gradle < 4.2 : Use gradle-notifier v1.2.0
Gradle >= 4.2 : Use gradle-notifier v2.0.0+

Installation

The plugin can be configured in an initialization script or in the build script.

It is also deployed on https://plugins.gradle.org.

Initialization script

For example, create (or edit) $HOME/.gradle/init.gradle file:

initscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath group: 'fr.jcgay', name: 'gradle-notifier', version: '3.0.0'
    }
}

rootProject {
    apply plugin: fr.jcgay.gradle.notifier.GradleNotifierPlugin
}

Build script

In build.gradle, add:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath group: 'fr.jcgay', name: 'gradle-notifier', version: '3.0.0'
    }
}

apply plugin: 'fr.jcgay.gradle-notifier'

Configuration

The plugin is based on send-notification. Available notifiers and customization are described at this wiki.

You can rely on a property file located at $HOME/.send-notification to configure your environment or use gradle to pass properties to the plugin.

notifier {
    implementation = 'notificationcenter'
    continuousNotify = false
    threshold {
        time = 10
        unit = java.util.concurrent.TimeUnit.SECONDS
    }
    timeout {
        time = 1
        unit = java.util.concurrent.TimeUnit.SECONDS
    }
    growl {
        port = 23053
        host = 'localhost'
        password = 'azerty123'
    }
    snarl {
        host = 'localhost'
        port = 9887
        appPassword = 's3cr3t'
    }
    pushbullet {
    	apikey = 'key123'
    	device = 'abcdef'
    }
    notifysend {
        timeout = 7
        path = 'notify-send'
    }
    notificationcenter {
    	path = 'terminal-notifier'
    	activate = 'com.apple.Terminal'
    	sound = 'default'
    }
    systemtray {
    	wait = 2
    }
    notifu {
    	path = 'notifu64'
    }
    kdialog {
    	path = 'kdialog'
    }
    anybar {
    	host = 'localhost'
    	port = 1738
    }
    toaster {
        path = 'toast'
    }
    notify {
        position = 'TOP_LEFT'
        darkstyle = true
    }
    burnttoast {
        sound = 'Reminder'
    }
    slack {
        token = 'secret.token'
        channel = '@jcgay'
    }
}

notifier.threshold allows to bypass notification when the build ends before the configured threshold.
notifier.continuousNotify activate notifications for continuous build (using --continuous or -t).
notifier.timeout configures the time Gradle will wait to communicate with a notifier.

All parameters are configured by default, if you're fine with it, no need to write them down.
gradle-notifier will try to find an available notifier on your system.

Notifier configuration can also be set using system properties. One can use -Dnotifier.implementation=anybar or -Dnotifier.anybar.port=9999 to override parameters for a specific build execution.

Notifiers

Notifier Screenshot
Growl, for Windows and OS X. Growl
Snarl, for Windows Snarl
terminal-notifier, OS X terminal-notifier
notification center OS X (since Mavericks) notification-center
notify-send for Linux notify-send
SystemTray since Java 6 System Tray
Pushbullet pushbullet
Kdialog for KDE Kdialog
notifu for Windows notifu
AnyBar for OS X and Linux anybar
Toaster for Windows 8 Toaster
Notify since Java 6 Notify
BurntToast for Windows 10 BurntToast
Slack Slack

Build

Status

Build Status Coverage Status

Set next version

./gradlew markNextVersion -Prelease.version=2.0.0

Release

./gradlew release && ./gradlew clean publish