Spring Boot/プロジェクトを分割してGradleでビルドする
Gradleをインストールする
- https://gradle.org/
Gradleを設定する
cd /path/to/multiproject
gradle init
サブプロジェクトを定義する
- settings.gradle
rootProject.name = 'multiproject'
include 'domain'
include 'persistence'
include 'web'
依存関係を定義する
- build.gradle
次を想定しています。
- 依存関係
- domain
- persistence -> domain
- web -> domain
- web -> persistence
- domainはLombokしか使わない
- persistenceはMyBatisでMySQLに接続する
- persistanceはMyBatis Generatorでマッパーを作成できる
- webはThymeleafを使う
- Eclipseで開発する
buildscript {
ext {
springBootVersion = '1.5.1.RELEASE'
}
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("gradle.plugin.com.arenagod.gradle:mybatis-generator-plugin:1.3")
}
}
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compileOnly("org.projectlombok:lombok:1.16.12")
}
}
project(':domain') {
}
project(':persistence') {
apply plugin: "com.arenagod.gradle.MybatisGenerator"
dependencies {
compile project(':domain')
compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.2.0')
}
configurations {
mybatisGenerator
}
mybatisGenerator {
verbose = true
configFile = "${projectDir}/src/main/resources/autogen/generatorConfig.xml"
}
}
project(':web') {
apply plugin: 'org.springframework.boot'
jar {
baseName = 'demo'
version = '0.0.1-SNAPSHOT'
}
dependencies {
compile project(':domain')
compile project(':persistence')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
runtime('mysql:mysql-connector-java')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
}
プロジェクト雛形を作成する
GradleでEclipse(STS)のプロジェクト雛形を作成する
$ gradle eclipse
STSでプロジェクトをimportする
- File > Import…
- Gradle / Existing Gradle Project ※ Buildship Gradle Integration要?
- Next >
- Project root directory: /path/to/multiproject
- Next >
- Gradle distribution: Gradle wrapper
- Next >
- Finish
それぞれのプロジェクトでSource Folderを作成する
- File > New > Source Folder
- Folder name: src/main/java
- Folder name: src/main/resources
- Folder name: src/test/java
- Folder name: src/test/resources
作成日 2017-03-23
