jruby-gradle.github.io/index.html

245 lines
11 KiB
HTML

<html>
<head>
<link href='/stylesheets/foundation.css' rel='stylesheet'>
<link href='/stylesheets/jrubygradle.css' rel='stylesheet'>
<link href='/news.atom' rel='alternate' title='JRuby/Gradle News' type='application/atom+xml'>
<title>
JRuby/Gradle
</title>
</head>
<body>
<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>
<div id='main_nav'>
<ul>
<li>
<a href='/'>
Home
</a>
</li>
<li>
<a href='/docs/'>
Documentation
</a>
</li>
<li>
<a href='/community/'>
Community
</a>
</li>
<li>
<a href='/news/'>
News
</a>
</li>
<li>
<a href='/download/'>
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>
<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>
</ul>
</div>
<div id='content'>
<h1>
JRuby/Gradle
</h1>
<div id="preamble">
<div class="sectionbody">
<div class="imageblock right">
<div class="content">
<img src="images/jruby-gradle.png" alt="jruby gradle">
</div>
</div>
<div class="paragraph">
<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,
manage and package Ruby applications. By combining the portability of
<a href="http://jruby.org">JRuby</a> with Gradle&#8217;s excellent task and dependency
management, <strong>JRuby/Gradle</strong> provides high quality build tooling for
Ruby and Java developers alike.</p>
</div>
<div class="paragraph">
<p><strong>Plugins available:</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="base/">Base</a></p>
</li>
<li>
<p><a href="jar/">Jar</a></p>
</li>
<li>
<p><a href="war/">War</a></p>
</li>
<li>
<p><a href="storm/">Storm</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="quick-start"><a class="anchor" href="#quick-start"></a>Quick Start</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="running-some-ruby"><a class="anchor" href="#running-some-ruby"></a>Running some Ruby</h3>
<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>
<div class="listingblock">
<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>
<div class="content">
<pre class="CodeRay highlight nowrap"><code data-lang="gradle">buildscript {
repositories { jcenter() }
dependencies {
/* Replace &quot;%%VERSION%%&quot; 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: &quot;com.github.jruby-gradle.base&quot;
import com.github.jrubygradle.JRubyExec
dependencies {
/* Using the built-in `jrubyExec` configuration to describe the
* dependencies our JRubyExec-based tasks will need
*/
jrubyExec &quot;rubygems:colorize:0.7.7+&quot;
}
task printSomePrettyOutputPlease(type: JRubyExec) {
description &quot;Execute our nice local print-script.rb&quot;
script &quot;${projectDir}/print-script.rb&quot;
}</code></pre>
</div>
</div>
<div class="listingblock">
<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>
<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>
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">-</span><span class="delimiter">&quot;</span></span> * <span class="integer">20</span>
puts <span class="string"><span class="delimiter">&quot;</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">&quot;</span></span>
puts <span class="string"><span class="delimiter">&quot;</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">&quot;</span></span>
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">-</span><span class="delimiter">&quot;</span></span> * <span class="integer">20</span>
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">Roses are red</span><span class="delimiter">&quot;</span></span>.red
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">Violets are blue</span><span class="delimiter">&quot;</span></span>.blue
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">I can use JRuby/Gradle</span><span class="delimiter">&quot;</span></span>.green
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">And now you can too!</span><span class="delimiter">&quot;</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">
</div>
</div>
</div>
<div class="sect2">
<h3 id="packaging-some-ruby"><a class="anchor" href="#packaging-some-ruby"></a>Packaging some Ruby</h3>
<div class="listingblock">
<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>
<div class="content">
<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 &quot;%%VERSION%%&quot; 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%%'
classpath 'com.github.jruby-gradle:jruby-gradle-jar-plugin:%%VERSION%%'
}
}
apply plugin: &quot;com.github.jruby-gradle.jar&quot;
repositories { jcenter() }
dependencies {
/* Using the built-in `jrubyJar` configuration to describe the
* dependencies our jrubyJar task will need, so the gem is properly
* included in the resulting .jar file
*/
jrubyJar &quot;rubygems:colorize:0.7.7+&quot;
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 &quot;${projectDir}/entrypoint.rb&quot;
}</code></pre>
</div>
</div>
<div class="listingblock">
<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>
<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>
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>)
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">-</span><span class="delimiter">&quot;</span></span> * <span class="integer">20</span>
logger.info <span class="string"><span class="delimiter">&quot;</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">&quot;</span></span>
logger.info <span class="string"><span class="delimiter">&quot;</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">&quot;</span></span>
logger.info <span class="string"><span class="delimiter">&quot;</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">&quot;</span></span>
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">-</span><span class="delimiter">&quot;</span></span> * <span class="integer">20</span>
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">Roses are red</span><span class="delimiter">&quot;</span></span>.red
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">Violets are blue</span><span class="delimiter">&quot;</span></span>.blue
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">I can use JRuby/Gradle</span><span class="delimiter">&quot;</span></span>.green
puts <span class="string"><span class="delimiter">&quot;</span><span class="content">And now you can too!</span><span class="delimiter">&quot;</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>
</div>
</div>
</div>
</div>
<hr>
<div id='improve'>
<a href='https://github.com/jruby-gradle/jruby-gradle-plugin/edit/master/docs//index.adoc'>
improve this page
</a>
</div>
</body>
</html>