반응형

 

intellij는 eclipse에서의 workspace가 없다.

workspace는 관련 없는 프로젝트들도 하나의 eclipse창만 띄우고 전부 볼 수 있었다.

 

intellij에서는 이 방식을 권장하지 않는다.

기본적으로 하나의 프로젝트에는 하나의 모듈을 권장한다.

 

연관있는 모듈일때만 프로젝트를 생성해서 멀티모듈로 구성한다.

 

 

 


 

 

 

New Project, New Module 화면

차이를 보면 New Project가 Empty Project를 제공해준다는 점만 빼면 똑같다.

 

 

 

 

 

 


 

 

 

멀티 모듈 설정

프로젝트를 gradle 프로젝트로 생성

각 모듈은 gradle 모듈로 생성

 

DSAL /

     DSAL_Algorithm

     DSAL_DataStructure

 

 

settings.gradle

rootProject.name = 'DSAL'
include 'DSAL_Algorithm'
include 'DSAL_DataStructure'

 

 

 

build.gradle

 

buildscript{ }: gradle 빌드전에 실행

allproject{ }: 모든 모듈에 적용

subproject{ }: 서브 모듈에만 적용

 

 

buildscript {
    apply plugin: 'java'

    ext{

    }

    repositories {
        mavenCentral()
    }

    dependencies {

    }

}

allprojects {
    apply plugin: 'java'

    group 'org.example'
    version '1.0-SNAPSHOT'
}

subprojects {
    repositories {
        mavenCentral()
    }

    dependencies {
        // 서브 모듈에 모두 추가할 라이브러리 설정

        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    }

    test {
        useJUnitPlatform()
    }
}

// 각 모듈별 라이브러리 설정
project(':DSAL_Algorithm'){
    dependencies {
        compileOnly 'org.projectlombok:lombok:1.18.12'
        annotationProcessor 'org.projectlombok:lombok:1.18.12'
    }
}

project(':DSAL_DataStructure'){
    dependencies {
    }
}

 

DSAL_Algorithm에 lombok은 테스트용도로 넣어둠

 

 


 

 

서브 모듈 build.gradle

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.12'
    annotationProcessor 'org.projectlombok:lombok:1.18.12'
}

 

프로젝트 build.gradle의 project(':subModule'){ } 로 사용하지 않고,

서브 모듈에 존재하는 build.gradle에 dependencies{ } 에 추가해도 동작한다.

 

 

 

프로젝트 build.gradle 한곳에서 관리해주는 것이 편리하니 project(':subModule'){} 를 사용하자.

 

 

 


 

 

참고

 

 

https://jojoldu.tistory.com/334

 

Eclipse의 Workspace와 IntelliJ의 Project

최근 인프런에 강의 영상을 올리고 여러 질문을 받았습니다. 그 중에서 자주 접하는 질문이 바로 Eclipse의 Workspace가 IntelliJ의 Project가 맞는건지에 대한 질문이였습니다. (질문) 그래서 이 부분에

jojoldu.tistory.com

 

반응형

' > intellij' 카테고리의 다른 글

[intellij] gradle를 이용해서 local jar 생성, 추가  (0) 2022.07.27

+ Recent posts