반응형

종속성관리를 위한 Gradle 플러그인이 있습니다. 해당 플러그인을 사용하면 버전을 명시하지 않아도 Management에서 관리되고 있는 버전으로 종속성관리를 해줍니다.


Spring Boot starter 버전의 내용은 org.springframework.boot 버전을 따라갑니다

plugins {
    id("org.springframework.boot") version "2.6.8"
    id("io.spring.dependency-management") version "1.0.11.RELEASE"
    ...
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("org.springframework.boot:spring-boot-starter-validation")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

DepdencyManagement 내용 확인하기

터미널에 다음과 같이 명령을 입력하면 관리되고 있는 내용들이 출력된다

gradlew dependencyManagement

------------------------------------------------------------
Root project
------------------------------------------------------------

global - Default dependency management for all configurations
    antlr:antlr 2.7.7
    ch.qos.logback:logback-access 1.2.11
    ch.qos.logback:logback-classic 1.2.11
    ch.qos.logback:logback-core 1.2.11
    com.atomikos:transactions-jdbc 4.0.6
    com.atomikos:transactions-jms 4.0.6
    com.atomikos:transactions-jta 4.0.6
    com.couchbase.client:java-client 3.2.7
    com.datastax.oss:java-driver-core 4.13.0
    ...

DepdencyManagement 사용하기

QueryDSL을 사용할 경우 다음과 같이 사용할 수 있다

dependencies {
    ...
    kapt("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties["querydsl.version"]}:jpa")
}

위의 의존성관리 내용중 ${dependencyManagement.importedProperties["querydsl.version"]} 이라고 표시된 부분은 어쩔수 없이 버전을 중간에 넣어줄수 밖에 없는 상황이다.

물론 다음과 같이 버전을 그냥 명시적으로 넣어도 된다

dependencies {
    ...
    kapt("com.querydsl:querydsl-apt:5.0.0:jpa")
}

위의 dependencyManagement.importedProperties를 출력해보면 위의 입력한것과 같은 5.0.0이 출력된다. 따로 println으로 출력해보면 여러가지 관리되고 있는 버전이 보인다

dependencies {
    ...
    runtimeOnly("com.h2database:h2")
    ...
    kapt("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties["querydsl.version"]}:jpa") //querydsl
    dependencyManagement.importedProperties.forEach(::println)
}
spring-integration.version=5.5.12
...
querydsl.version=5.0.0
...
h2.version=1.4.200

위에 보이는 runtimeOnly("com.h2database:h2")의 경우에는 1.4.2 버전으로 설정된다


 

GitHub - spring-gradle-plugins/dependency-management-plugin: A Gradle plugin that provides Maven-like dependency management func

A Gradle plugin that provides Maven-like dependency management functionality - GitHub - spring-gradle-plugins/dependency-management-plugin: A Gradle plugin that provides Maven-like dependency manag...

github.com

 

Dependency Management Plugin

Gradle’s maven and maven-publish plugins automatically generate a pom file that describes the published artifact. The plugin will automatically include any global dependency management, i.e. dependency management that does not target a specific configura

docs.spring.io

 

반응형

'개발 > Kotlin' 카테고리의 다른 글

Kotlin DSL로 Gradle 버전관리하기  (0) 2022.07.21
TransactionalEventListener 그리고 EventListener  (0) 2022.07.12
QueryDSL 설정 - Kotlin  (0) 2022.06.19
Kotlin Basic - 함수와 변수  (0) 2022.06.18
Spring Bean Validation - Test Code  (0) 2022.06.14

+ Recent posts