Eclipse + Gradle + Scalaで開発
EclipseでGradleを使ってScalaで開発をする時のセットアップと配布物(distribution, fatjar, jar-with-dependency)を作る際のメモ
Eclipse との連携基本
Groovy Eclipse
gradle DSLのサポートをするためにgroovy eclipseを入れる
- http://groovy.codehaus.org/Eclipse+Pluginにアクセスして対応するecilpse levelのURLをコピー
- help -> install new software で上記URLを貼り付け
Project setup
- new project -> gradle project -> java quick start (scala quick startはない様)
- project上で右クリ -> Configure -> add scala nature
project directory schema
src/main/java src/main/resources src/test/java src/test/resources build/libs
mkdir
src/main/scala src/test/scala
build.gradle
... apply plugin: 'scala' ... dependencies { compile group: 'commons-collections', name: 'commons-collections', version: '3.2' compile 'org.scala-lang:scala-library:2.10.3' // 追加 testCompile group: 'junit', name: 'junit', version: '4.+' } ...
build
- project上で右クリ -> Run As -> Gradle Build...
- Type tasks in the editor below. Use
+ to activate content assistantの中にTask(s)を入れる - Runボタンを押す
task ex1
clean build
task ex2
clean assemble
各種plugin
Application Plugin
http://www.gradle.org/docs/current/userguide/application_plugin.html
- distributionを作るプラグイン
- /pathto/project/build/distributions/ に配布物ができる
- fatjarができるわけではないので注意
- build/distributions/${project_name}.zip に依存関連のjar files,
- build/libs/${project_name}.jarに依存関連なしのアプリケーションができる
- これらを使ってもいいかも
build.gradle
... apply plugin:'application' ... //mainClassName = "" // 空にしといてコマンド実行時に指定でも良いかも mainClassName = "pathto.pkg.Main" // 指定しないと怒られるのでとりあえず指定
build
$ gradle distZip
- project上で右クリ -> Run As -> Gradle Build...で良い.
できたdistributionの実行の仕方はいくつかあって
1. projectの下(gradle.bulidがあるとこ)でgradle run
2. build/distributions/${project_name}-${version}.zipを解凍して, bash bin/${project_name}
3. build/distributions/${project_name}-${version}.zipを解凍して, *.jarをclasspathに指定して,java -classpath "pathto/lib/*" pkg.to.main
Fat Jar
参考URLs
- http://flabo.io/code/20140703/01-standalonejar-gradle/
- https://github.com/musketyr/gradle-fatjar-plugin
- http://stackoverflow.com/questions/23738676/how-to-specify-main-class-when-using-fatjar-plugin-in-gradle-build
jar-with-dependenciesなjarファイルを作るにはいくつかやり方があるよう.
上記3つのURLのやり方は
- fatjar pluginを使う
- eu.appsatori.fatjarを使う
- uberjarというタスクを定義して自作
一番簡単そうなのは2つ目
- build.gradle
これを先頭に追加 (Main-Classは特に指定しなくてもいい)
buildscript { repositories { jcenter() } dependencies { classpath 'eu.appsatori:gradle-fatjar-plugin:0.3' } } apply plugin: 'eu.appsatori.fatjar' ....
project上で右クリ -> Run As -> Gradle Build...
clean fatJar
/pathto/project/build/libs にfatjarができる