クリーンアップ側項目1(マルチモジュール設定、gradle)
5327 ワード
プロジェクト開始時にモジュール化されていません.後で行います一人で行うので、機能モジュール化する必要はありません.
しかし、機能別のモジュール化に伴い、管理と開発に大きなメリットがあることがわかりました.そのため、他の機能を考え始めました.
モジュール化されたディレクトリの構成は次のとおりです.
まずmainの構築です.gradleに追加:
適用するpluginとそれらの汎用依存性をここに示す.
次はmainの設定です.gradleセクションです
プロジェクト全体で、次のモジュールが表示されます.
次はバッチモジュールの構築です.勾配ファイル.
私の場合、共通部分は親プロジェクトなので、親プロジェクトを「:」で記録します.
そして下.
bootJar~部分での設定は,サブモジュールにマスターメソッドがなく,低設定で構築しないと失敗するためである.
したがって、bootjarファイルではなくjarファイルのみを作成するように設定する必要があります.
しかし、機能別のモジュール化に伴い、管理と開発に大きなメリットがあることがわかりました.そのため、他の機能を考え始めました.
モジュール化されたディレクトリの構成は次のとおりです.
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ファイルのみを作成するように設定する必要があります.
Reference
この問題について(クリーンアップ側項目1(マルチモジュール設定、gradle)), 我々は、より多くの情報をここで見つけました https://velog.io/@kurikuri/사이드프로젝트-정리1-멀티-모듈-설정-gradleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol