개발자의 오르막

Multimodule Querydsl 환경설정 본문

Trouble Shouting

Multimodule Querydsl 환경설정

계단 2020. 11. 16. 18:52

단일 모듈에서는 잘 실행되었던 Querydsl 이 멀티 모듈에서 환경설정을 해보니 에러가 났다.

 

 위와 같이 admin, core, web 으로 3개의 멀티모듈로 구성하였다.

 

- build.gradle

plugins {
    id 'org.springframework.boot' version '2.2.8.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id "org.sonarqube" version "2.7.1"
    id 'java'
}

ext["hibernate.version"] = "5.4.5.Final"

allprojects {
    repositories {
        mavenCentral()
        maven { url 'https://repo.spring.io/milestone' }
        maven { url 'https://repo.spring.io/snapshot' }
    }
}

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

    group 'com.gig'
    version '1.0'
    sourceCompatibility = JavaVersion.VERSION_11

    configurations {
        developmentOnly
        runtimeClasspath {
            extendsFrom developmentOnly
        }
        compileOnly {
            extendsFrom annotationProcessor
        }
    }

    dependencies {
    }
}

project(":module-core") {
    version = '0.1.0'

    bootJar.enabled = false
    jar.enabled = true
}

project(':module-admin') {
    apply plugin: 'war'
    version = '0.1.0'

    bootWar.enabled = false
    war.enabled = true

    war {
        archivesBaseName = "admin"
        archiveFileName = "ROOT.war"
    }

    dependencies {
        compile project(':module-core')
    }
}

project(':module-web') {
    apply plugin: 'war'
    version = '0.1.0'

    bootWar.enabled = false
    war.enabled = true

    war {
        archivesBaseName = "web"
        archiveFileName = "ROOT.war"
    }

    dependencies {
        compile project(':module-core')
    }
}

test {
    useJUnitPlatform()
}

  위의 build.gradle 은 전체 의존성을 추가한 것은 아니지만 멀티모듈을 구성할 때 내가 자주 쓰는 방식이다.

  - plugins 는 대표적인 플러그인 의존을 선언할 때 쓰인다.

  - ext 는 특정 버전을 정의하고 싶을 때 쓰인다.

  - project('모듈명') 은 각각의 모듈에 따로 적용시킬 부분들을 선언한다.

  

# 개발환경

- SpringBoot, Jpa, Gradle

 

 

Comments