ビルドツールであるGradleを使用して、web framework であるSparkを起動するまでの流れを記述する。
これは何
Gradle で Spark を動かすのに苦労したため、同じ過ちを避けるための備忘録。
対象とする読者
Gradle も Spark も全く知らない方。
TL;DL
適切にbuild.gradle
を記述し Kotlin から呼び出す。この時一緒に SL4J も読み込んでおくことがポイント。
Gradle について
Gradleは複数の言語をサポートするビルドツールだ。
Gradle is a build tool with a focus on build automation and support for multi-language development.
(https://github.com/gradle/gradle より)
対応言語 / プラットフォームは Java, Scala, Android,C/C++, Groovy が挙げられる。これらを使用したプロジェクトの開発サイクルにおいて、その全般(コンパイル/パッケージングからテスト、公開まで)を柔軟にサポートするツールだ。
CLI の使用
Gradle の使用は、CLI ツールもしくは IDE プラグイン経由で使用することができる。
CLI ツールのインストールは、Mac であれば Homebrew を通して行える。
# インストール
brew install gradle
# インストール成否の確認
gradle -v
※ Gradle はあらゆる OS に対応しているが、インストール時にJavaJDK もしくは JRE(version 8)が必要となるため事前にインストールしておく必要がある。
IDE での使用
Gradle は多くの IDE によりサポートされており、CLI ツールをインストールせずとも、各 IDE から提供されている Gradle 拡張をインストールすることで、IDE 経由で使用することができる。
インストール手順は各 IDE のマニュアルを参照。IntelliJはこちら
Spark について
Spark は Kotlin / Java で Web アプリを作るためのマイクロフレームワークだ。「生産性の向上(Built for productivy)」のためのフレームワークとして、開発者が少ないコードで多くの機能を実現できるようにするという、極めてシンプルな哲学を掲げている。
With a clear philosophy Spark is designed not only to make you more productive, but also to make your code better under the influence of Spark’s sleek, declarative and expressive syntax.
(http://sparkjava.com/ より)
多くの場合、REST API の作成に使用されることの多い Spark だが、複数のテンプレートエンジンをサポートしているため、バックエンドからフロントエンドまでカバーすることができる。
Spark の HelloWorld!
ここでは Spark を Gradle 経由で起動する際に、用意するべき最低限のファイルについて記す。
build.gradle を記述
以下のビルドファイルを用意する。
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.72'
}
repositories {
mavenCentral()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
implementation "com.sparkjava:spark-kotlin:1.0.0-alpha"
implementation 'org.slf4j:slf4j-log4j12:1.7.21'
}
ポイントとして、上から順に、
- IntelliJ で Kotlin をサポートするよう、プラグインを読む
- Mave Central repositoryをライブラリとして追加
- spark を読み込む(公式ドキュメントを参照)
- SLF4J(Simple Logging Facade for Java)を読み込む
- Spark 内部で動作している(?)ため要読込(<= 詳細 要確認)
SLF4J を読み込まないと Gradle に怒られる。この点については Spark の公式 Document に言及がなかったため困惑した。
log4j の設定ファイルを用意する
SLF4J を使用する上で、設定ファイルが必要となる。設定ファイルをsrc/main/resources/lob4j.properties
として作成し、以下の設定を記述する。
log4j.rootLogger=DEBUG, console
log4j.logger.xxx=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-5p-%c] %m%n
Kotlin で Spark の動作確認
Get リクエストに対する応答を書き、正しくコードが実行されるようであれば成功。
|
|
終わりに
Gradle を使用した Spark の動作を確認してきた。
各設定について、特に Gradle については不明な点が多すぎるため、今後も調べていきたい。
要確認
- Gradle と Maven との比較
build.gradle
のcompile
とimplementation
の違いbuild scan
の使いどころ- buildscript