티스토리 뷰

Kotlin/설정

Build.gradle.kts 설정

evolutioning 2024. 5. 29. 11:03

코틀린으로 에이전트를 생성하면서

의존성 설정에 애를 먹어 작성해본다.

 

1.

plugins {
    id("org.springframework.boot") version "2.7.13"
    id("io.spring.dependency-management") version "1.0.15.RELEASE"
    kotlin("jvm") version "1.6.21"
    kotlin("plugin.spring") version "1.6.21"
}

현재 사용중인 spring-boot버전, jvm버전을 설정

 

2.

springBoot {
    mainClass.set("com.example.test.testApplication")
}

메인 클래스를 지정

 

3. 

java {
    sourceCompatibility = JavaVersion.VERSION_17
}

설치되어있는 자바 버전 설정

 

4.

configurations {
    compileOnly {
        extendsFrom(configurations.annotationProcessor.get())
    }
}

해당 설정을 정확히 파악하지 못해 검색해보았다.

=>

  1. compileOnly 구성:
    • compileOnly 구성은 컴파일 타임에만 필요한 의존성을 정의합니다. 즉, 이 구성에 포함된 라이브러리는 컴파일할 때는 필요하지만, 런타임에는 필요하지 않습니다. 예를 들어, Lombok과 같은 코드 생성 라이브러리들이 이에 해당합니다.
  2. annotationProcessor 구성:
    • annotationProcessor 구성은 주로 애노테이션 프로세서를 포함합니다. 애노테이션 프로세서는 소스 코드를 컴파일할 때 소스 코드에 주석을 처리하여 추가 소스 파일을 생성할 수 있습니다.
  3. extendsFrom 사용:
    • extendsFrom 메서드는 한 구성이 다른 구성으로부터 의존성을 상속받도록 설정합니다.
    • 위의 예시에서는 compileOnly 구성이 annotationProcessor 구성으로부터 의존성을 상속받습니다. 이는 annotationProcessor 구성에 정의된 모든 의존성이 compileOnly 구성에도 포함됨을 의미합니다.

 

결론 : 위 설정은 annotationProcessor에 추가된 모든 애노테이션 프로세서 의존성이 compileOnly 구성에도 적용되도록 하여, 컴파일 타임에 애노테이션 프로세서를 사용할 수 있도록 합니다

 

5.

sourceSets {
    main {
        resources {
            srcDir("${project.projectDir}/src/main/kotlin")
                .exclude("**/*.kt")
        }
    }
    test {
        resources {
            srcDir("${project.projectDir}/src/test/kotlin")
                .exclude("**/*.kt")
        }
    }
}

sourcesets : Gradle 프로젝트에서 소스코드, 리소스 파일 위치를 정의한다.

직접 실행하는 main과

테스트를 위해 실행하는 test를 포함한다.

=> .kt 파일을 제외하는 이유는 리소스 파일(.properties, xml,json) 등과 같은 파일과 소스파일을 분리하기위함이다.

 

의존성 파트는 길이가 길어 다음 포스팅에 진행할 예정.

반응형

'Kotlin > 설정' 카테고리의 다른 글

Build.gradle.kts - part2  (0) 2024.05.29
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함