Running RSpec

build.gradle
/* Add the JRuby Gradle "base" plugin as a dependency of our build script */
buildscript {
    repositories { jcenter() }
    dependencies {
        classpath 'com.github.jruby-gradle:jruby-gradle-plugin:0.1.9'
    }
}

/*
 * Importing the JRubyExec type class so we can create our own JRubyExec-based
 * task below
 */
import com.github.jrubygradle.JRubyExec

dependencies {
    /* We need RSpec gems from rubygems.org to run RSpec */
    jrubyExec group: 'rubygems', name: 'rspec', version: '3.1.+'
}

task spec(type: JRubyExec) {
    group 'JRuby'
    description 'Execute the RSpecs in JRuby'
    jrubyArgs '-S'
    script 'rspec'
}

Building an executable .jar file

build.gradle
buildscript {
    repositories { mavenLocal() }
    dependencies {
        classpath 'com.github.jruby-gradle:jruby-gradle-plugin:0.1.9'
    }
}
plugins {
  id "com.github.jruby-gradle.jar" version "0.1.2"
  id "com.github.johnrengelman.shadow" version "1.1.2"
}

apply plugin: 'java'

dependencies {
    gems group: 'rubygems', name: 'protobuf', version: '3.0.+'
    gems group: 'rubygems', name: 'rake', version: '10.3.+'
}


jrubyJavaBootstrap {
    jruby {
        initScript = 'bin/rake'
    }
}

// Pull the contents of lib and bin into the root of the created jar file
sourceSets {
    main {
        resources.srcDirs = ['lib', 'bin']
    }
}

shadowJar {
    baseName 'blick-agent'
    exclude '*.sw*', '*.gitkeep', '*.md'

    jruby {
        // Use the default GEM installation directory
        defaultGems()
        defaultMainClass()
    }
}

Creating a .war file

build.gradle
/* Add the JRuby Gradle "war" plugin as a dependency of our build script */
buildscript {
    repositories { jcenter() }

    dependencies {
        classpath 'com.github.jruby-gradle:jruby-gradle-war-plugin:0.1.5'
    }
}

apply plugin: 'com.github.jruby-gradle.war'

dependencies {
    /* Enumerate some dependencies that will get pulled into the .war */
    gems 'rubygems:colorize:0.7.3'
    gems 'rubygems:sinatra:1.4.5'
}

jrubyWar {
    webInf {
        /* Include our app inside of `my.war/WEB-INF` */
        from 'app.rb'
        /* Include the config.ru to boot the app properly */
        from 'config.ru'
    }
}