LoginSignup
8
8

More than 5 years have passed since last update.

Gradleでbowerを利用したフロントエンドのビルドまでを行う方法 (1/6)

Last updated at Posted at 2016-03-31

はじめに

Java/SparkプロジェクトのGradleを利用したビルド/デプロイについて、私が試したことをまとめたものです。
(ここで言うSparkは、分散処理ライブラリのApache Sparkではなく、JavaのSinatraライクなMicroframeworkのSparkのことです)

目次

  1. Hello Worldアプリ
  2. jadeテンプレートエンジン
  3. Grunt/bowerによるWebパッケージのビルド
  4. 付録A. TravisCIによるビルド
  5. 付録B. Gradleでdocker build
  6. 付録C. TravisCIからDockerHubへ docker push

各章でのソースコードは Commits · kaakaa/gradle-frontend-boilerplate から確認できます。

環境

  • Java 1.8.0_74
  • Gradle 2.12
  • spark-core 2.3
  • spark-template-jade 2.3
  • node.js 4.4.0

1. Hello Worldアプリ

概要

Spark Framework - A tiny Java web frameworkを利用したHello World.

実行

git clone https://github.com/kaakaa/gradle-frontend-boilerplate.git
cd gradle-frontend-boilerplate
git checkout sec_1

./gradlew run

ビルドスクリプト

build.gradle
plugins {  // (1) - 使用するGradleプラグインを宣言
    id 'java'
    id 'application'
}

group 'org.kaakaa'
version '1.0-SNAPSHOT'

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

mainClassName = 'org.kaakaa.spark.Main'  // (2) - applicationプラグインから実行されるメインクラス名を指定

repositories {
    mavenCentral()  // (3) - dependencies節に書かれた依存関係解決にMaven Centralを使用することを宣言
}

dependencies {
    compile 'com.sparkjava:spark-core:2.3' // (4) - spark-coreへの依存性を宣言
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.12'
}

(1) 使用するGradleプラグインを宣言

Gradleで使用するプラグインを宣言します。

JavaプラグインでJavaプロジェクトのビルドに関する情報がひと通り取り込まれます。
今回使用するWebフレームワークのsparkは、Javaのmainメソッドにルーティングを定義するため、mainメソッドの実行を楽にできる
アプリケーション プラグインを使用しています。

(2) applicationプラグインから実行されるメインクラス名を指定

applicationプラグインで使用するメインクラスはmainClassNameとしてパッケージ名を含めて指定しておきます。
runタスクを実行するとmainClassNameで指定したmainメソッドが実行されます。

(3) dependencies節に書かれた依存関係解決にMaven Centralを使用することを宣言

GradleではMavenリポジトリを参照して依存関係を解決しますが、参照するリポジトリはrepositories節で宣言します(51.6. リポジトリ).
MavenCentralやjCenterなど、よく使われるMavenリポジトリにはシンタックスが用意されています。

(4) spark-coreへの依存性を宣言

実際にJavaプロジェクトで使用するライブラリ(今回ではspark-coreのみ)はdependencies節に宣言します。
ここでcompileと指定しているのは、javaプラグインにより追加されるconfigurationで、Javaソースのcompile時に参照されることを宣言しています(runtime時にも参照されますが)。
javaプラグインにより追加されるconfigurationについては 8.3. 依存関係のコンフィグレーション を参照ください。

アプリケーションコード

org.kaakaa.spark.Main
package org.kaakaa.spark;

import static spark.Spark.get;
import static spark.Spark.port;

public class Main {
    public static void main(String[] args) {
        port(8080);  // (1) - 起動ポートの指定

        get("/hello", (rq, rs) -> "Hello World!");  // (2) - Routing
    }
}

(1) 起動ポートの指定

Sparkアプリを起動した際の起動ポートを指定します。
デフォルトは4567です。

(2) Routing

Sparkでのルーティングの宣言方法です。
この場合、http://localhost:8080/helloにアクセスすると、Hello World!という文字列を返すことになります。

SparkのRoutingについては、公式サイトを読むとよく分かると思います。
Spark Framework - Documentation

8
8
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
8
8