Help us understand the problem. What is going on with this article?

Spring Boot解説第5回(開発環境編:build.gradleについて)

More than 3 years have passed since last update.

こんにちはこんばんは!
株式会社情創 技術開発局
暖かくなり食欲がわいてきて
焼肉が食べたくて仕方がない@YAKINIKUです!

今回はbuild.gradleについて解説します。

build.gradleとは

Groovyで記述されたGradleのビルドスクリプトファイルのことです。
gradleコマンドの実行時にここを参照してビルドを実行します。

build.gradleのファイルはこちらに生成されます。
build.gradle.png

build.gradle

実際のソースをご覧ください。
各項目の解説はコメントで記入しています。

build.gradle
// 外部ライブラリを使うときの依存関係を設定する箇所
buildscript {
    ext {
        springBootVersion = '1.3.1.RELEASE'
    }
    repositories {
        // インターネット上に存在するリポジトリーを取得する
        mavenCentral()
    }
    dependencies {  
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        // HOT deployの実現  
        classpath("org.springframework:springloaded:1.2.1.RELEASE")
    }
}

// プラグインの適用
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: 'war'

// warの名前とバージョン設定
war {
    baseName = 'demo'
    version = '0.0.1-SNAPSHOT'
}

// エンコーディング
def defaultEncoding = 'UTF-8'
[compileJava, compileTestJava]*.options*.encoding = defaultEncoding

// ソースと実行ファイルのJava バージョン
String jdkVersion = 1.8
sourceCompatibility = jdkVersion
targetCompatibility = jdkVersion


repositories {
// インターネット上に存在するリポジトリーを取得する
    mavenCentral()
}

// 依存ライブラリー(使用するjarファイルのこと)はdependencies で指定する。
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
// warプラグインでは、providedCompileとprovidedRuntimeの2つの依存構成を追加します。
// この2つの構成は、warアーカイブに追加されない点以外は、それぞれcompile、runtimeと同じ機能です。
    providedCompile("org.projectlombok:lombok:1.16.6")
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
}
import org.gradle.plugins.ide.eclipse.model.SourceFolder
eclipse {
    // .project の設定
    project {
        // プロジェクト独自の特徴づけを行う eclipse上で右クリックした際に出てくるメニューの追加等を行える
        natures 'org.springframework.ide.eclipse.core.springnature'
        natures 'org.springsource.ide.eclipse.gradle.core.nature'
        natures 'org.eclipse.jdt.core.javanature'
        natures 'net.harawata.mybatipse.MyBatisNature'
        // ビルドコマンド
        buildCommand 'org.springframework.ide.eclipse.core.springbuilder'
        buildCommand 'org.eclipse.jdt.core.javabuilder'
    }

    // .classpath の設定
    classpath {
        file {
            // ソースパスの設定を削除
            beforeMerged { classpath ->
                classpath.entries.removeAll { it.kind == "src" }
            }
            // 出力パスを gradle のデフォルトパスに合わせる
            whenMerged { classpath ->
                classpath.entries.findAll { it instanceof SourceFolder && it.path.startsWith("src/main/java")      }*.output = "build/classes/main"
                classpath.entries.findAll { it instanceof SourceFolder && it.path.startsWith("src/main/resources") }*.output = "build/resources/main"
                classpath.entries.findAll { it instanceof SourceFolder && it.path.startsWith("src/test/java")      }*.output = "build/classes/test"
                classpath.entries.findAll { it instanceof SourceFolder && it.path.startsWith("src/test/resources") }*.output = "build/resources/test"
                classpath.entries.removeAll { it.kind == "output" }
            // デフォルトランチャーの削除
            containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
            // ランチャー指定 JREシステムライブラリーが変更される
            containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
            containers 'org.eclipse.buildship.core.gradleclasspathcontainer'
        }
    }
}

では、今回はここまでです。
またお会いしましょう!

johso
礼節をもって、最適なITソリューションを提供する集団。
http://www.johso.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした