【Spark Framework】初期設定 ~ 環境構築(Gradle Project)からHello Worldまで / 新版 ~

■ はじめに

 * 以下の関連記事で、プラグイン「Gradle IDE Pack 3.8.X+1.0.X+2.2.X」をいれたのだが
   Eclipseを立ち上げると以下の「ダイアログ表示」が表示されるので、Buildship を調べてみる
https://blogs.yahoo.co.jp/dk521123/36426276.html

ダイアログ表示

Migration from STS Gradle to Buildship
【訳】STS GradleからBuildshipへの移行

The STS Gradle plugin is under minimal maintenance and may be discontinued in the future.
【訳】STS gradleプラグインは、最小限のメンテナンスで行われており、今後継続が中断される可能性があります。

A doument explaining the migration process from STS Gradle to Buildship can be found here.
【訳】STS GradleからBuildshipへの移行プロセスを説明してあるドキュメントは、こちら(以下のURL)です。
リンク「here」 をクリックすると以下のURLに繋がる
https://github.com/eclipse/buildship/wiki/Migration-guide-from-STS-Gradle-to-Buildship

■ 環境構築

今回作成する環境下

 * OS              : Windows10
 * Java            : Java1.8
 * Eclipse         : Oxygen.1a Release (4.7.1a)
 * ビルド ツール   : Gradle
 * Spark Framework : Spark v2.7

準備 : Buildship: Eclipse Plug-ins for Gradle のインストール

一度だけでいい
[1] Eclipseの[Help]-[Install New Software...]を選択
[2] 以下「ダウンロード参照先」から、URLをコピーし、
    Eclipseの「Work with...」欄に張り付け、Enterキー押下

今回は
http://download.eclipse.org/buildship/updates/e46/releases/2.x

[3] 「Name」欄にチェックボックス「Buildship: Eclipse Plug-ins for Gradle」が出てくるので
    「Next」ボタン押下(後はインストールしてくれる)
[4] 後はインストールして、Eclipseを再起動する
ダウンロード参照先
https://projects.eclipse.org/projects/tools.buildship/downloads

Hello World を作成する

[1] Gradle プロジェクトを作成する

1-1) Eclipseの[File]-[New]-[Other]-[Gradle]-[Gradle Project]を選択し、「Next」ボタン押下。
     さらに、「Next」ボタン押下。
1-2) 以下を入力し、「Finish」ボタン押下
 + Project Name   : 任意(今回は「SampleSpark」)
【出力結果】
:wrapper
:init

BUILD SUCCESSFUL

Total time: 4.969 secs

CONFIGURE SUCCESSFUL

Total time: 2.064 secs

CONFIGURE SUCCESSFUL

Total time: 1.332 secs
Download https://jcenter.bintray.com/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.pom
Download https://jcenter.bintray.com/com/google/guava/guava/21.0/guava-21.0.pom
Download https://jcenter.bintray.com/com/google/guava/guava-parent/21.0/guava-parent-21.0.pom
Download https://jcenter.bintray.com/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar
Download https://jcenter.bintray.com/com/google/guava/guava/21.0/guava-21.0.jar
Download https://jcenter.bintray.com/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1-sources.jar
Download https://jcenter.bintray.com/com/google/guava/guava/21.0/guava-21.0-sources.jar

CONFIGURE SUCCESSFUL

Total time: 0.2 secs

CONFIGURE SUCCESSFUL

Total time: 0.291 secs

[2] ビルドスクリプト「build.gradle」の修正

2-1) Eclipseの対象プロジェクト直下にある「build.gradle」を開く
2-2) Eclipseの対象プロジェクトを右クリックし、[Gradle]-[Refresh Gradle Project]を選択
2-3) Eclipseの対象プロジェクト内の「src/main/java」「src/test/java」配下にある
    「Library.java」「LibraryTest.java」を削除する
【修正前】
dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:21.0'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'
}
【修正後】
dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:21.0'

    // !ADD!
    compile 'com.sparkjava:spark-core:2.7.0'
    compile 'org.slf4j:slf4j-simple:1.7.25'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'
}

[3] 「Hello World」を作成する

3-1) Eclipseの対象プロジェクト内の「src/main/java」を右クリックし、
     [New]-[Other]-[Class]を選択し、Javaソースを作成する(今回は「HelloWorld.java」)

3-2) 以下を参考に、「Hello World」を作成する
* HelloWorld.java
import static spark.Spark.get;

public class HelloWorld {

  public static void main(String[] args) {
    get("/", (request, respose) -> "Hello World!!?");
  }
}

[4] サーバを起動する

4-1) 3-2)で作成したプログラムをJavaアプリケーションとして実行する
【出力結果】
[Thread-0] INFO org.eclipse.jetty.util.log - Logging initialized @294ms to org.eclipse.jetty.util.log.Slf4jLog
[Thread-0] INFO spark.embeddedserver.jetty.EmbeddedJettyServer - == Spark has ignited ...
[Thread-0] INFO spark.embeddedserver.jetty.EmbeddedJettyServer - >> Listening on 0.0.0.0:4567
[Thread-0] INFO org.eclipse.jetty.server.Server - jetty-9.4.4.v20170414
[Thread-0] INFO org.eclipse.jetty.server.session - DefaultSessionIdManager workerName=node0
[Thread-0] INFO org.eclipse.jetty.server.session - No SessionScavenger set, using defaults
[Thread-0] INFO org.eclipse.jetty.server.session - Scavenging every 600000ms
[Thread-0] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@3527beaf{HTTP/1.1,[http/1.1]}{0.0.0.0:4567}
[Thread-0] INFO org.eclipse.jetty.server.Server - Started @516ms

[5] 動作確認

5-1) ブラウザを立ち上げて、以下のURLにアクセスする
[http://localhost:4567]
# 「Hello World!!?」が表示される


関連記事

【Spark Framework】初期設定 ~ 環境構築(Gradle Project)からHello Worldまで / 旧版 ~

https://blogs.yahoo.co.jp/dk521123/36426276.html

【Spark Framework】処理部分を分離させる

https://blogs.yahoo.co.jp/dk521123/36683099.html

【Spark Framework】静的ファイルを設定するには...

https://blogs.yahoo.co.jp/dk521123/37208237.html

【Spark Framework】Ajax で form データ送受信する

https://blogs.yahoo.co.jp/dk521123/37210328.html

【Spark Framework】Spark Framework + GSONを使って REST API を作成する

https://blogs.yahoo.co.jp/dk521123/37203509.html

【Spark Framework】REST API + knockout.jsを使って データバインドする

https://blogs.yahoo.co.jp/dk521123/37208334.html

Spark Framework + args4j を使ってコマンドライン引数から設定値を変更

https://blogs.yahoo.co.jp/dk521123/37207522.html