クリーンアップ側項目1(マルチモジュール設定、gradle)


プロジェクト開始時にモジュール化されていません.後で行います一人で行うので、機能モジュール化する必要はありません.
しかし、機能別のモジュール化に伴い、管理と開発に大きなメリットがあることがわかりました.そのため、他の機能を考え始めました.
モジュール化されたディレクトリの構成は次のとおりです.
MAIN
- chat
	- build.gradle
- batch
	- build.gradle

build.gradle
setting.gradle
各サブモジュールには、個別の階層設定ファイルがあり、モジュール全体を管理する階層があります.
まずmainの構築です.gradleに追加:
plugins {
	id 'org.springframework.boot' version '2.6.2'

	id 'io.spring.dependency-management' version '1.0.11.RELEASE'

	id 'java'

	// RestDocs 관련
	id 'org.asciidoctor.jvm.convert' version '3.1.0'

	// jacoco
	id 'jacoco'

	// sonarqube

	//querydsl 추가
//	id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}

group = 'malangcute.bellytime'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

// sub-module(batch)
subprojects {
	group 'malangcute.bellytime'
	version '1.0'

	apply plugin: 'java'
	apply plugin: 'io.spring.dependency-management'
	apply plugin: 'org.springframework.boot'

	sourceCompatibility = 11

	repositories {
		mavenCentral()
	}

	dependencies {
		compileOnly 'org.projectlombok:lombok'
		annotationProcessor 'org.projectlombok:lombok'
		testImplementation('org.springframework.boot:spring-boot-starter-test')
	}
}
サブプロジェクトセクションは、モジュールの共通セクションを作成する場所です.
適用するpluginとそれらの汎用依存性をここに示す.
次はmainの設定です.gradleセクションです
rootProject.name = 'bellytimeCustomer'
include 'batch'
include 'chat'
上部では、オブジェクトの名前を投影全体で記録し、そのサブアイテムに適用するモジュールの名前をincludeで記録します.
プロジェクト全体で、次のモジュールが表示されます.
次はバッチモジュールの構築です.勾配ファイル.
plugins {
    id 'java'
}

group 'malangcute.bellytime'
version '0.0.1-SNAPSHOT'

repositories {
    mavenCentral()
}

// 최상위 루트 포함
dependencies {
    implementation(project(':' ))


    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'

    //스프링 배치 설정
    implementation 'org.springframework.boot:spring-boot-starter-batch'

    //quartz 스케쥴러 추가
    implementation 'org.springframework.boot:spring-boot-starter-quartz'

}

test {
    useJUnitPlatform()
}

// 루트 프로젝트에 포함하여 빌드 -> sub module에는 main 메소드가 없어서 빌드에 실패함 따라서
//아래와 같이 설정 적용해줘야함(jar만 생성)
bootJar {
    enabled = false
}

jar {
    enabled = true
}
このモジュールに必要な依存性を追加できます.次にdependencisセクションの実装で、一緒に使用するモジュールを書きます.つまり、汎用モジュールの一部を書くだけです.
私の場合、共通部分は親プロジェクトなので、親プロジェクトを「:」で記録します.
そして下.
bootJar~部分での設定は,サブモジュールにマスターメソッドがなく,低設定で構築しないと失敗するためである.
したがって、bootjarファイルではなくjarファイルのみを作成するように設定する必要があります.