2015-07-20 17:02:28 +00:00
< html >
2014-12-07 16:25:26 +00:00
< head >
2015-07-31 08:11:32 +00:00
< link href = '/stylesheets/foundation.css' rel = 'stylesheet' >
< link href = '/stylesheets/jrubygradle.css' rel = 'stylesheet' >
2015-07-21 18:29:16 +00:00
< link href = '/news.atom' rel = 'alternate' title = 'JRuby/Gradle News' type = 'application/atom+xml' >
2015-07-20 17:02:28 +00:00
< title >
JRuby/Gradle
< / title >
2014-12-07 16:25:26 +00:00
< / head >
2015-07-20 17:02:28 +00:00
< body >
2015-07-21 17:01:52 +00:00
< a href = 'https://github.com/jruby-gradle' >
< img alt = 'Fork me on GitHub' data-canonical-src = 'https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png' src = 'https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67' style = 'position: absolute; top: 0; right: 0; border: 0;' >
< / a >
2015-07-20 23:19:14 +00:00
< div id = 'main_nav' >
< ul >
< li >
2015-07-31 08:11:32 +00:00
< a href = '/' >
2015-07-20 23:19:14 +00:00
Home
< / a >
< / li >
< li >
2015-07-31 08:11:32 +00:00
< a href = '/docs/' >
2015-07-20 23:19:14 +00:00
Documentation
< / a >
< / li >
< li >
2015-07-31 08:11:32 +00:00
< a href = '/community/' >
2015-07-20 23:19:14 +00:00
Community
< / a >
< / li >
< li >
2015-07-31 08:11:32 +00:00
< a href = '/news/' >
2015-07-20 23:19:14 +00:00
News
< / a >
< / li >
2015-07-21 17:01:52 +00:00
< li >
2015-07-31 08:11:32 +00:00
< a href = '/download/' >
2015-07-21 17:01:52 +00:00
Download
< / a >
< / li >
< li >
< a href = 'https://travis-ci.org/jruby-gradle/jruby-gradle-plugin' >
< img src = 'https://travis-ci.org/jruby-gradle/jruby-gradle-plugin.svg?branch=master' >
< / a >
< / li >
2015-09-10 22:25:23 +00:00
< li >
< a href = 'https://bintray.com/jruby-gradle/plugins' >
< img src = 'https://api.bintray.com/packages/jruby-gradle/plugins/jruby-gradle-plugin/images/download.svg' >
< / a >
< / li >
2015-07-20 23:19:14 +00:00
< / ul >
2015-07-05 03:14:30 +00:00
< / div >
2015-07-21 17:01:52 +00:00
< div id = 'content' >
2015-07-20 23:19:14 +00:00
< h1 >
JRuby/Gradle
< / h1 >
2015-07-21 17:01:52 +00:00
< div id = "preamble" >
2015-07-05 03:14:30 +00:00
< div class = "sectionbody" >
2015-07-21 17:01:52 +00:00
< div class = "imageblock right" >
< div class = "content" >
< img src = "images/jruby-gradle.png" alt = "jruby gradle" >
< / div >
< / div >
2015-07-05 03:14:30 +00:00
< div class = "paragraph" >
2015-07-20 17:02:28 +00:00
< p > < a href = "https://github.com/jruby-gradle/" > JRuby/Gradle< / a > is a collection of
< a href = "http://www.gradle.org" > Gradle< / a > plugins which make it easy to build, test,
2015-07-21 17:01:52 +00:00
manage and package Ruby applications. By combining the portability of
2015-07-20 17:02:28 +00:00
< a href = "http://jruby.org" > JRuby< / a > with Gradle’ s excellent task and dependency
2015-07-21 17:01:52 +00:00
management, < strong > JRuby/Gradle< / strong > provides high quality build tooling for
2015-07-20 17:02:28 +00:00
Ruby and Java developers alike.< / p >
2015-07-05 03:14:30 +00:00
< / div >
2015-07-22 00:23:11 +00:00
< div class = "paragraph" >
< p > < strong > Plugins available:< / strong > < / p >
2015-07-05 03:14:30 +00:00
< / div >
2015-07-21 17:01:52 +00:00
< div class = "ulist" >
< ul >
< li >
2015-07-31 08:11:32 +00:00
< p > < a href = "base/" > Base< / a > < / p >
2015-07-21 17:01:52 +00:00
< / li >
< li >
2015-07-31 08:11:32 +00:00
< p > < a href = "jar/" > Jar< / a > < / p >
2015-07-21 17:01:52 +00:00
< / li >
< li >
2015-07-31 08:11:32 +00:00
< p > < a href = "war/" > War< / a > < / p >
2015-07-21 17:01:52 +00:00
< / li >
< li >
2015-07-31 08:11:32 +00:00
< p > < a href = "storm/" > Storm< / a > < / p >
2015-07-21 17:01:52 +00:00
< / li >
< / ul >
< / div >
< / div >
2015-07-22 00:23:11 +00:00
< / div >
2015-07-20 17:02:28 +00:00
< div class = "sect1" >
< h2 id = "quick-start" > < a class = "anchor" href = "#quick-start" > < / a > Quick Start< / h2 >
< div class = "sectionbody" >
2015-07-05 03:14:30 +00:00
< div class = "sect2" >
2015-07-20 17:02:28 +00:00
< h3 id = "running-some-ruby" > < a class = "anchor" href = "#running-some-ruby" > < / a > Running some Ruby< / h3 >
2015-07-22 00:23:11 +00:00
< div class = "paragraph" >
< p > The simplest example is a hello-world from Gradle, using JRuby/Gradle we can
execute a Ruby script, which has Ruby-based dependencies:< / p >
< / div >
2015-07-21 17:01:52 +00:00
< div class = "listingblock" >
2016-08-30 19:34:07 +00:00
< div class = "title" > build.gradle (< a href = "https://github.com/jruby-gradle/jruby-gradle-plugin/blob/master/examples/run-simple-ruby-script/build.gradle" > full source< / a > )< / div >
2015-07-21 17:01:52 +00:00
< div class = "content" >
2016-08-30 19:34:07 +00:00
< pre class = "CodeRay highlight nowrap" > < code data-lang = "gradle" > buildscript {
repositories { jcenter() }
dependencies {
/* Replace " %%VERSION%%" with the version of JRuby/Gradle you wish to
* use if you want to use this build.gradle outside of gradleTest
*/
classpath 'com.github.jruby-gradle:jruby-gradle-plugin:%%VERSION%%'
}
}
apply plugin: " com.github.jruby-gradle.base"
2015-07-21 17:01:52 +00:00
2015-07-22 00:23:11 +00:00
import com.github.jrubygradle.JRubyExec
2015-07-21 17:01:52 +00:00
dependencies {
2015-07-22 00:23:11 +00:00
/* Using the built-in `jrubyExec` configuration to describe the
* dependencies our JRubyExec-based tasks will need
*/
jrubyExec " rubygems:colorize:0.7.7+"
2015-07-21 17:01:52 +00:00
}
2015-07-22 00:23:11 +00:00
task printSomePrettyOutputPlease(type: JRubyExec) {
description " Execute our nice local print-script.rb"
script " ${projectDir}/print-script.rb"
}< / code > < / pre >
< / div >
< / div >
< div class = "listingblock" >
2017-08-15 18:41:39 +00:00
< div class = "title" > print-script.rb (< a href = "https://github.com/jruby-gradle/jruby-gradle-plugin/blob/master/examples/run-simple-ruby-script/print-script.rb" > full source< / a > )< / div >
2015-07-22 00:23:11 +00:00
< div class = "content" >
2015-07-22 14:00:23 +00:00
< pre class = "CodeRay highlight nowrap" > < code data-lang = "ruby" > require < span class = "string" > < span class = "delimiter" > '< / span > < span class = "content" > colorize< / span > < span class = "delimiter" > '< / span > < / span >
2015-07-21 17:01:52 +00:00
2015-07-22 00:23:11 +00:00
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > -< / span > < span class = "delimiter" > " < / span > < / span > * < span class = "integer" > 20< / span >
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Ruby version: < / span > < span class = "inline" > < span class = "inline-delimiter" > #{< / span > < span class = "predefined-constant" > RUBY_VERSION< / span > < span class = "inline-delimiter" > }< / span > < / span > < span class = "delimiter" > " < / span > < / span >
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Ruby platform: < / span > < span class = "inline" > < span class = "inline-delimiter" > #{< / span > < span class = "predefined-constant" > RUBY_PLATFORM< / span > < span class = "inline-delimiter" > }< / span > < / span > < span class = "delimiter" > " < / span > < / span >
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > -< / span > < span class = "delimiter" > " < / span > < / span > * < span class = "integer" > 20< / span >
2015-07-21 17:01:52 +00:00
2015-07-22 00:23:11 +00:00
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Roses are red< / span > < span class = "delimiter" > " < / span > < / span > .red
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Violets are blue< / span > < span class = "delimiter" > " < / span > < / span > .blue
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > I can use JRuby/Gradle< / span > < span class = "delimiter" > " < / span > < / span > .green
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > And now you can too!< / span > < span class = "delimiter" > " < / span > < / span > .yellow< / code > < / pre >
< / div >
< / div >
< div class = "paragraph" >
< p > Executing < code > ./gradlew printSomePrettyOutputPlease< / code > results in the following:< / p >
< / div >
< div class = "imageblock" >
< div class = "content" >
< img src = "images/print-script-output.png" alt = "print script output" >
2015-07-21 17:01:52 +00:00
< / div >
< / div >
2015-07-05 03:14:30 +00:00
< / div >
< div class = "sect2" >
2015-07-20 17:02:28 +00:00
< h3 id = "packaging-some-ruby" > < a class = "anchor" href = "#packaging-some-ruby" > < / a > Packaging some Ruby< / h3 >
2015-07-22 14:00:23 +00:00
< div class = "listingblock" >
2016-08-30 19:34:07 +00:00
< div class = "title" > build.gradle (< a href = "https://github.com/jruby-gradle/jruby-gradle-plugin/blob/master/examples/self-executing-jar/build.gradle" > full source< / a > )< / div >
2015-07-22 14:00:23 +00:00
< div class = "content" >
2016-08-30 19:34:07 +00:00
< pre class = "CodeRay highlight nowrap" > < code data-lang = "gradle" > buildscript {
repositories { jcenter() }
dependencies {
/* here to make sure that our dependencies get loaded in properly under
* GradleTest, this is NOT needed by end-users
*/
classpath 'com.github.jengelman.gradle.plugins:shadow:[1.2.2,2.0)'
/* Replace " %%VERSION%%" with the version of JRuby/Gradle you wish to
* use if you want to use this build.gradle outside of gradleTest
*/
2015-10-01 16:28:31 +00:00
classpath 'com.github.jruby-gradle:jruby-gradle-plugin:%%VERSION%%'
classpath 'com.github.jruby-gradle:jruby-gradle-jar-plugin:%%VERSION%%'
}
}
apply plugin: " com.github.jruby-gradle.jar"
2015-07-22 14:00:23 +00:00
2015-08-07 15:23:00 +00:00
repositories { jcenter() }
2015-07-22 14:00:23 +00:00
dependencies {
2015-07-31 08:11:32 +00:00
/* Using the built-in `jrubyJar` configuration to describe the
2015-07-22 14:00:23 +00:00
* dependencies our jrubyJar task will need, so the gem is properly
* included in the resulting .jar file
*/
2015-07-31 08:11:32 +00:00
jrubyJar " rubygems:colorize:0.7.7+"
2016-08-30 19:34:07 +00:00
jrubyJar 'org.slf4j:slf4j-simple:1.7.12'
}
jrubyJar {
/* We want to use this Ruby script as our start point when the jar executes
*/
initScript " ${projectDir}/entrypoint.rb"
}< / code > < / pre >
2015-07-22 14:00:23 +00:00
< / div >
< / div >
< div class = "listingblock" >
2016-08-30 19:34:07 +00:00
< div class = "title" > entrypoint.rb (< a href = "https://github.com/jruby-gradle/jruby-gradle-plugin/blob/master/examples/self-executing-jar/entrypoint.rb" > full source< / a > )< / div >
2015-07-22 14:00:23 +00:00
< div class = "content" >
< pre class = "CodeRay highlight nowrap" > < code data-lang = "ruby" > require < span class = "string" > < span class = "delimiter" > '< / span > < span class = "content" > colorize< / span > < span class = "delimiter" > '< / span > < / span >
2015-07-20 17:02:28 +00:00
2015-08-07 15:23:00 +00:00
java_import < span class = "string" > < span class = "delimiter" > '< / span > < span class = "content" > org.slf4j.Logger< / span > < span class = "delimiter" > '< / span > < / span >
java_import < span class = "string" > < span class = "delimiter" > '< / span > < span class = "content" > org.slf4j.LoggerFactory< / span > < span class = "delimiter" > '< / span > < / span >
logger = < span class = "constant" > LoggerFactory< / span > .getLogger(< span class = "string" > < span class = "delimiter" > '< / span > < span class = "content" > demo< / span > < span class = "delimiter" > '< / span > < / span > )
2015-07-22 14:00:23 +00:00
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > -< / span > < span class = "delimiter" > " < / span > < / span > * < span class = "integer" > 20< / span >
2015-08-07 15:23:00 +00:00
logger.info < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Ruby version: < / span > < span class = "inline" > < span class = "inline-delimiter" > #{< / span > < span class = "predefined-constant" > RUBY_VERSION< / span > < span class = "inline-delimiter" > }< / span > < / span > < span class = "delimiter" > " < / span > < / span >
logger.info < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Ruby platform: < / span > < span class = "inline" > < span class = "inline-delimiter" > #{< / span > < span class = "predefined-constant" > RUBY_PLATFORM< / span > < span class = "inline-delimiter" > }< / span > < / span > < span class = "delimiter" > " < / span > < / span >
logger.info < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Current file: < / span > < span class = "inline" > < span class = "inline-delimiter" > #{< / span > < span class = "predefined-constant" > __FILE__< / span > < span class = "inline-delimiter" > }< / span > < / span > < span class = "delimiter" > " < / span > < / span >
2015-07-22 14:00:23 +00:00
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > -< / span > < span class = "delimiter" > " < / span > < / span > * < span class = "integer" > 20< / span >
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Roses are red< / span > < span class = "delimiter" > " < / span > < / span > .red
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > Violets are blue< / span > < span class = "delimiter" > " < / span > < / span > .blue
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > I can use JRuby/Gradle< / span > < span class = "delimiter" > " < / span > < / span > .green
puts < span class = "string" > < span class = "delimiter" > " < / span > < span class = "content" > And now you can too!< / span > < span class = "delimiter" > " < / span > < / span > .yellow< / code > < / pre >
< / div >
< / div >
< div class = "paragraph" >
< p > Executing < code > ./gradlew jrubyJar< / code > will build a < code > .jar< / code > file inside of the
< code > build/libs< / code > directory which can then be invoked:< / p >
< / div >
< div class = "paragraph" >
< p > < code > % java -jar build/libs/self-executing-jar-jruby.jar< / code > < / p >
< / div >
< div class = "imageblock" >
< div class = "content" >
< img src = "images/self-executing-jar-output.png" alt = "self executing jar output" >
< / div >
< / div >
2014-12-07 16:25:26 +00:00
< / div >
< / div >
< / div >
2015-07-21 17:01:52 +00:00
< / div >
2015-07-20 23:19:14 +00:00
< hr >
2016-08-30 19:34:07 +00:00
< div id = 'improve' >
< a href = 'https://github.com/jruby-gradle/jruby-gradle-plugin/edit/master/docs//index.adoc' >
improve this page
< / a >
< / div >
2014-12-07 16:25:26 +00:00
< / body >
2015-07-20 17:02:28 +00:00
< / html >