245 lines
11 KiB
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’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 "%%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"
|
|
|
|
import com.github.jrubygradle.JRubyExec
|
|
|
|
dependencies {
|
|
/* Using the built-in `jrubyExec` configuration to describe the
|
|
* dependencies our JRubyExec-based tasks will need
|
|
*/
|
|
jrubyExec "rubygems:colorize:0.7.7+"
|
|
}
|
|
|
|
task printSomePrettyOutputPlease(type: JRubyExec) {
|
|
description "Execute our nice local print-script.rb"
|
|
script "${projectDir}/print-script.rb"
|
|
}</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">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">"</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>
|
|
|
|
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">
|
|
</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 "%%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%%'
|
|
classpath 'com.github.jruby-gradle:jruby-gradle-jar-plugin:%%VERSION%%'
|
|
}
|
|
}
|
|
|
|
apply plugin: "com.github.jruby-gradle.jar"
|
|
|
|
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 "rubygems:colorize:0.7.7+"
|
|
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>
|
|
</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">"</span><span class="content">-</span><span class="delimiter">"</span></span> * <span class="integer">20</span>
|
|
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>
|
|
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>
|
|
</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>
|