14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Groovyスクリプトを配布する1つの方法

Posted at

#はじめに
Groovyでスクリプトを書いたのだけれど、どうやって配布しましょうか?というのはあると思います。今回は、GradleのApplicationプラグインを使った方法を考えてみます。

#GroovyスクリプトをGradleでビルドする
まず、GroovyスクリプトをGradleでビルドできる様にしましょう。
次の様なGroovyスクリプトを作成したとします。

Hello.groovy
println "Hello ${args.join(',')}."

このファイルをプロジェクト(プロジェクトの親フォルダ名はGroovyHelloScriptとします)のsrc/main/groovyに置いて、Gradleでビルドする様にします。

build.gradle
apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.4.0'
}

Groovy 2.4.0リリース記念(笑)ということで、Groovy 2.4.0を使う様にしています。

#Applicationプラグインを追加する
GradleのApplicationプラグインの良い所は、

  • Windows/Mac/Linuxで実行可能なスクリプトを作成してくれる
  • 実行に必要なjarをまとめてくれる

だと思います。

先ほどのGradleビルドスクリプトに、Applicationプラグインを追加してみましょう。

build.gradle
apply plugin: 'groovy'
apply plugin: 'application'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.4.0'
}

mainClassName = "Hello"

GradleのGroovyプラグインでビルドすると、Groovyスクリプトをコンパイルしたクラスファイルが作成されますので、このGroovyスクリプトのクラスをmainClassNameに指定してあげれば実行できる筈です。

#実行可能なファイルを作成して、実行してみる
実行可能なファイルを作成してみます。
gradle installAppを呼ぶと、build/install/GroovyHelloScriptに実行可能なファイルが作成されます。binフォルダの実行スクリプトをGroovyHelloScript Groovy Java Scala JRubyの様にして実行すると、、、正しく実行されると思います。

#実行可能ファイルをZIPにまとめる
後は、配布できる様に実行可能ファイルをZIPにまとめます。
gradle distZipを呼ぶと、build/distributionsにZIPファイル(GroovyHelloScript.zip)が作成されます。
このZIPファイルを配布して展開すれば、Javaが入っている環境で実行できる様になります。

#最後に
Groovyスクリプトを、GradleのGroovyプラグインとApplicationプラグインを使って配布できるという事が分かりました。
これを使えば、Groovyスクリプトで作成した、ちょっとしたツールを配布できますね。

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?