1. dependencies

    1. spring web
    2. spring data jpa
    3. lombok
  2. intellij (build.gradle로 오픈) → intellij가 gradle에 모두 위임 하는걸 방지하기 위함

    1. Preferences > gradle > build and run using: intellij로 변경
    2. Preferences > gradle > run tests using: intellij로 변경
  3. plugin > lombok 설치

  4. Preferences > Annotaion Processors > Enable annotation processing 체크

  5. build.gradle에 querydsl 설정 추가

    plugins {
    	id 'org.springframework.boot' version '2.2.2.RELEASE'
    	id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    
    	//querydsl 추가
    	id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
    
    	id 'java'
    }
    group = 'study'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'
    configurations {
    	compileOnly {
    		extendsFrom annotationProcessor
    	}
    }
    repositories {
    	mavenCentral()
    }
    dependencies {
    	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    	implementation 'org.springframework.boot:spring-boot-starter-web'
    
    	//querydsl 추가
    	implementation 'com.querydsl:querydsl-jpa'
    
    	compileOnly 'org.projectlombok:lombok'
    	runtimeOnly 'com.h2database:h2'
    	annotationProcessor 'org.projectlombok:lombok'
    	testImplementation('org.springframework.boot:spring-boot-starter-test') {
    		exclude group: ‘org.junit.vintage’, module: ‘junit-vintage-engine'
    	}
    }
    test {
    	useJUnitPlatform()
    }
    
    //querydsl 추가 시작
    def querydslDir = "$buildDir/generated/querydsl"
    
    querydsl {
    	jpa = true
    	querydslSourcesDir = querydslDir
    }
    
    sourceSets {
    	main.java.srcDir querydslDir
    }
    
    configurations {
    	querydsl.extendsFrom compileClasspath
    }
    compileQuerydsl {
    	options.annotationProcessorPath = configurations.querydsl
    }
    //querydsl 추가 끝
    
  6. 테스트 엔티티 생성후 Gradle > Tasks > other > compileQuerydsl 실행

    1. build.gradle에 명시한대로 build > generated > querydsl > ###패키지 경로 > Q엔티티 생성 확인
    2. 여기에 생성된건 git에 올라가면 안됨.
    3. 대부분 .gitignore에 build 폴더도 포함되어 있어서 괜찮