Gradle 8.0.1 Release Notes(๋ณ€๊ฒฝ๋œ ์ )

2023. 2. 26. 18:55ยทTool/Gradle

The Gradle team is excited to announce Gradle 8.0.1.

This is the first patch release for Gradle 8.0.

It fixes the following issues:

  • #21551 ํˆด์ฒด์ธ๊ณผ Scala ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ฌธ์„œ ํ†ตํ•ฉ ๋ฐ ๋Œ€์ƒ ํ”Œ๋ž˜๊ทธ ๋ฌธ์ œ
  • #23888 --no-rebuild ์ƒˆ๋กœ์šด ์‚ฌ์šฉ ์ค‘๋‹จ ์ฃผ๊ธฐ๊ฐ€ ์—†๊ณ  ์‚ฌ์šฉ ์ค‘๋‹จ์ด ๋ฌดํšจํ™”๋˜๋Š” ์ด์œ  ์—†์ด ๊ฐ‘์ž๊ธฐ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
  • #23905 Gradle 8.0์ด ๋ฌธ์ž์—ด ํด๋ž˜์Šค ์˜ค๋ฅ˜์—์„œ isBlank๋ฅผ ์ฐพ์„ ์ˆ˜์—†๋Š” ์Šค์นผ๋ผ ๋นŒ๋“œ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” 8.0 ๋Œ€์‹  8.0.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


์ด ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” Kotlin DSL ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  Kotlin DSL์˜ API ์ˆ˜์ค€์„ Kotlin 1.8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์—์„œ ๊ตฌ์„ฑ ์บ์‹œ๋Š” ๊ธฐ์กด ๋ณ‘๋ ฌ ๋ชจ๋“œ์— ๋น„ํ•ด ๋” ๋งŽ์€ ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜์—ฌ ๋นŒ๋“œ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์บ์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ณด์กด ์‹œ๊ฐ„์„ ๊ตฌ์„ฑํ•˜์—ฌ Gradle ์‚ฌ์šฉ์ž ํ™ˆ์˜ ํฌ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ ์ •๋ฆฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Gradle 8.0์—๋Š” ๋งŽ์€ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ๊ธฐํƒ€ ์ผ๋ฐ˜์ ์ธ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ ๋ฒ„์ „์ธ ์ด ๋ฆด๋ฆฌ์Šค์—๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” API ๋ฐ ๋™์ž‘์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ API ๋ฐ ๋™์ž‘์— ๋Œ€ํ•œ ์ง€์นจ์€ Gradle 7.x ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Upgrade instructions

๋ž˜ํผ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ Gradle 8.0.1์„ ์‚ฌ์šฉํ•˜๋„๋ก ๋นŒ๋“œ๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

./gradlew wrapper --gradle-version=8.0.1

Gradle 7.8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ์ง€์› ์ค‘๋‹จ, ํ˜ธํ™˜์„ฑ์ด ์†์ƒ๋˜๋Š” ๋ณ€๊ฒฝ, ๊ธฐํƒ€ ๊ณ ๋ ค ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๋ฉด Gradle 0.x ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Java, Groovy, Kotlin ๋ฐ Android ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•ด์„œ๋Š” ์ „์ฒด ํ˜ธํ™˜์„ฑ ๋…ธํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

New features, performance and usability improvements

 

Kotlin DSL

Gradle์˜ Kotlin DSL์€ ์ง€์›๋˜๋Š” IDE์—์„œ ํ–ฅ์ƒ๋œ ํŽธ์ง‘ ํ™˜๊ฒฝ(์šฐ์ˆ˜ํ•œ ์ฝ˜ํ…์ธ  ์ง€์›, ๋ฆฌํŒฉํ† ๋ง, ๋ฌธ์„œํ™” ๋“ฑ)๊ณผ ํ•จ๊ป˜ Groovy DSL์— ๋Œ€ํ•œ ๋Œ€์ฒด ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Faster Kotlin DSL build script compilation

Gradle 8.0์—๋Š” ์ „์ฒด ์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์•ฝ 20% ๋‹จ์ถ•ํ•˜๋Š” .gradle.kts ์Šคํฌ๋ฆฝํŠธ์˜ ์„ ์–ธ์  ํ”Œ๋Ÿฌ๊ทธ์ธ {} ๋ธ”๋ก์šฉ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ํ–ฅ์ƒ์€ ์ผ๋ถ€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์„ ์–ธ์  ํ”Œ๋Ÿฌ๊ทธ์ธ {} ๋ธ”๋ก์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ Gradle์€ Kotlin ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์›๋˜๋Š” ํ˜•์‹๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

plugins {
    id("java-library")                                // <1>
    id("com.acme.example") version "1.0" apply false  // <2>
    kotlin("jvm") version "1.7.21"                    // <3>
}
  1. Plugin requested by plugin identifier string
  2. Plugin requested by plugin identifier and version and/or the plugin apply flag
  3. Plugin requested with the kotlin(...) helper

ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜ˆ: alias(libs.plugins.acme)) ๋˜๋Š” ์œ ํ˜•์ด ์•ˆ์ „ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ ‘๊ทผ์ž(์˜ˆ: 'acme-plugin')์— ๋ฒ„์ „ ์นดํƒˆ๋กœ๊ทธ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜•์‹์— ๋Œ€ํ•œ ์ง€์›์€ ๋‚˜์ค‘์— ์ถ”๊ฐ€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„ ์–ธ์  plugins {} ๋ธ”๋ก ์˜ ์ œํ•œ๋œ ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Kotlin DSL updated to Kotlin API level 1.8

์ด์ „์—๋Š” Kotlin DSL์ด Kotlin API ๋ ˆ๋ฒจ 1.4๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Gradle 8.0๋ถ€ํ„ฐ Kotlin DSL์€ Kotlin API ๋ ˆ๋ฒจ 1.8๋กœ ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์œผ๋กœ Kotlin 1.4.0 ์ดํ›„ Kotlin ์–ธ์–ด ๋ฐ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ Kotlin DSL ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋กœ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์—…๊ทธ๋ ˆ์ด๋“œ์˜ ํ˜ธํ™˜์„ฑ์ด ์†์ƒ๋˜๋Š” ๋ณ€๊ฒฝ ๋ฐ ํ˜ธํ™˜์„ฑ์ด ์†์ƒ๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ 7.x ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Kotlin DSL can use newer Java features

์ด์ „์—๋Š” .gradle.kts ์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ์ด Java 8๋ฐ”์ดํŠธ ์ฝ”๋“œ ๋ฐ ๊ธฐ๋Šฅ์œผ๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Gradle 8.0๋ถ€ํ„ฐ Kotlin DSL์€ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” JVM์˜ ์ž๋ฐ” ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŒ€์—์„œ Java 11์„ ์‚ฌ์šฉํ•˜์—ฌ Gradle์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ œ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์—์„œ Java 11 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์–ธ์–ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ ๋œ ์Šคํฌ๋ฆฝํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์•„๋ž˜ ์ฐธ์กฐ).

๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ์Šคํฌ๋ฆฝํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ตฌ์„ฑ๋œ Java ํˆด์ฒด์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด์ „์—๋Š” ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ์Šคํฌ๋ฆฝํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ปดํŒŒ์ผ ์—์„œ kotlinDslPluginOptions.jvmTarget์— ์˜ํ•ด ๊ตฌ์„ฑ๋œ JVM ๋Œ€์ƒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

Gradle 8.0๋ถ€ํ„ฐ ์‚ฌ์ „ ์ปดํŒŒ์ผ๋œ ์Šคํฌ๋ฆฝํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ Java ํˆด์ฒด์ธ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํˆด์ฒด์ธ์ด ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Java 8์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ์Šคํฌ๋ฆฝํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•ด Java ํˆด์ฒด์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ kotlin-dsl ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ณ , ๋ณ€๊ฒฝ๋œ ๋™์ž‘์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

 

Improvements for buildSrc builds

์ด ๋ฆด๋ฆฌ์Šค์—๋Š” buildSrc ๋นŒ๋“œ๊ฐ€ ํฌํ•จ๋œ ๋นŒ๋“œ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋„๋ก ๋ช‡ ๊ฐ€์ง€ ๊ฐœ์„  ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํฌํ•จ๋œ ๋นŒ๋“œ๋Š” ์ฆ๋ถ„ ๋นŒ๋“œ ๋ฐ ์ž‘์—… ์บ์‹ฑ์„ ๋” ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œ ๋…ผ๋ฆฌ๋ฅผ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋Œ€์ฒด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ๋“ค์€ ๋™์ผํ•œ ํ˜œํƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Run buildSrc tasks directly

์ด์ œ ํฌํ•จ๋œ ๋นŒ๋“œ์˜ ์ž‘์—…์— ์‚ฌ์šฉ๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์ค„์—์„œ buildSrc ๋นŒ๋“œ์˜ ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด gradle buildSrc:build๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ buildSrc ๋นŒ๋“œ์—์„œ ๋นŒ๋“œ ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

buildSrc can include other builds

์ด์ œ buildSrc ๋นŒ๋“œ๋Š” buildSrc/settings.gradle.kts ๋˜๋Š” buildSrc/settings.gradle์—์„œ ์„ ์–ธํ•˜์—ฌ ๋‹ค๋ฅธ ๋นŒ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด buildSrc๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋นŒ๋“œ ๋…ผ๋ฆฌ๋ฅผ ๋” ์ž˜ ์กฐ์งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„ค์ • ์Šคํฌ๋ฆฝํŠธ์—์„œ pluginsManagement { includeBuild(someDir) } ๋˜๋Š” includeBuild(someDir)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ buildSrc์— ๋‹ค๋ฅธ ๋นŒ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Tests for buildSrc are no longer automatically run

Gradle์€ buildSrc์˜ ์ถœ๋ ฅ์„ ๋นŒ๋“œํ•  ๋•Œ ํ•ด๋‹น ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…๋งŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ๋นŒ๋“œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋Š” buildSrc ๋ฐ ํ•ด๋‹น ํ•˜์œ„ ํ”„๋กœ์ ํŠธ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ buildSrc์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Init scripts are applied to buildSrc

--init-script๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์ค„์— ์ง€์ •๋œ ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ œ ๊ธฐ๋ณธ ๋นŒ๋“œ ๋ฐ ํฌํ•จ๋œ ๋ชจ๋“  ๋นŒ๋“œ ์™ธ์—๋„ buildSrc์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

 

Configuration cache

๊ตฌ์„ฑ ์บ์‹œ๋Š” ๊ตฌ์„ฑ ๋‹จ๊ณ„์˜ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ ํ•˜๊ณ  ํ›„์† ๋นŒ๋“œ์— ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋นŒ๋“œ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์–‘ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

More parallelism on the first build

์ด์ œ ๊ตฌ์„ฑ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ‘๋ ฌ ์‹คํ–‰์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์„ธ๋ถ„ํ™”๋œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gradle 8.0๋ถ€ํ„ฐ ๊ตฌ์„ฑ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž‘์—…์ด ์ฒซ ๋ฒˆ์งธ ๋นŒ๋“œ์™€ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Gradle์€ ๊ตฌ์„ฑ ์บ์‹œ ํ•ญ๋ชฉ์„ ์žฌ์‚ฌ์šฉํ•  ๋•Œ ํ•ญ์ƒ ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ ๋‚ด์˜ ์ž‘์—…์—๋„ ์ข…์†์„ฑ ์ œ์•ฝ ์กฐ๊ฑด์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ ์บ์‹œ ํ•ญ๋ชฉ์„ ์ €์žฅํ•  ๋•Œ๋„์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์บ์‹œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜๊ณ  Gradle์ด ํ˜„์žฌ ๋นŒ๋“œ์™€ ํ˜ธํ™˜๋˜๋Š” ์บ์‹œ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉด ์บ์‹œ์—์„œ ์ž‘์—…์„ ๋กœ๋“œํ•˜๊ณ  ๊ฒฉ๋ฆฌํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. Gradle์ด ์ ์ ˆํ•œ ์บ์‹œ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•„์š”ํ•œ ์ž‘์—…์„ ๊ฒฐ์ •ํ•˜๊ณ  ์ƒˆ ์บ์‹œ ํ•ญ๋ชฉ์— ์ €์žฅํ•œ ๋‹ค์Œ ์ €์žฅ๋œ ์ƒํƒœ์— ๋”ฐ๋ผ ์ฆ‰์‹œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ƒˆ๋กœ์šด ๋™์ž‘์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—ญ์ง๋ ฌํ™” ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋Š” ์บ์‹œ ๋ˆ„๋ฝ ๋นŒ๋“œ์— ๋ณด๊ณ ๋˜๋ฏ€๋กœ ๋” ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—…์€ ์บ์‹œ ๋ˆ„๋ฝ ๋ฐ ์บ์‹œ ์ ์ค‘ ํšŸ์ˆ˜ ๋นŒ๋“œ ๋ชจ๋‘์—์„œ ๋™์ผํ•œ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋นŒ๋“œ ๊ฐ„์˜ ์ผ๊ด€์„ฑ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Gradle์€ ์บ์‹œ ๋ˆ„๋ฝ ๋นŒ๋“œ์—์„œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๊ตฌ์„ฑ ์ƒํƒœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜์—ฌ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ ๋ˆ„๋ฝ๊ณผ ์บ์‹œ ์ ์ค‘ ๋นŒ๋“œ ๊ฐ„์˜ ์ด๋Ÿฌํ•œ ์ผ๊ด€๋œ ๋™์ž‘์€ ์ฒซ ๋ฒˆ์งธ(์บ์‹œ ๋ˆ„๋ฝ) ๋นŒ๋“œ์—์„œ ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ตฌ์„ฑ ์บ์‹œ ์‚ฌ์šฉ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Expanded compatibility with core plugins

gradle init ๋ช…๋ น์€ ๊ตฌ์„ฑ ์บ์‹œ๊ฐ€ ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ANTLR ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ Groovy DSL ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ œ ๊ตฌ์„ฑ ์บ์‹œ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ํ•ต์‹ฌ Gradle ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ์บ์‹œ ์ง€์›์˜ ํ˜„์žฌ ์ƒํƒœ๋Š” ๊ตฌ์„ฑ ์บ์‹œ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Java Toolchains improvements

Updated toolchain download repositories

Gradle 7.6์—์„œ๋Š” ์œ ์—ฐ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•ด ํˆด์ฒด์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋„์ž… ๋˜์—ˆ์Šต๋‹ˆ๋‹ค . Gradle 8.0์—๋Š” ๋” ์ด์ƒ ๊ธฐ๋ณธ ํˆด์ฒด์ธ ํ”„๋กœ๋น„์ €๋„ˆ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ Java ๋„๊ตฌ ์ฒด์ธ ์ €์žฅ์†Œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Foojay ํˆด์ฒด์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ฐ™์€ ํˆด์ฒด์ธ ์ €์žฅ์†Œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

plugins {
    id("org.gradle.toolchains.foojay-resolver-convention") version("0.4.0")
}

For more details, see the user manual.

 

General improvements

 

๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ Gradle ์‚ฌ์šฉ์ž ํ™ˆ ์บ์‹œ ์ •๋ฆฌ ๋ฐ ๋ณด์กด

์ด์ „์—๋Š” Gradle ์‚ฌ์šฉ์ž ํ™ˆ์˜ ์บ์‹œ ์ •๋ฆฌ์— ๊ณ ์ • ๋ณด๊ด€ ๊ธฐ๊ฐ„(์บ์‹œ์— ๋”ฐ๋ผ 30์ผ ๋˜๋Š” 7์ผ)์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Gradle ์‚ฌ์šฉ์ž ํ™ˆ์˜ ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ์— ์žˆ๋Š” ์„ค์ • ๊ฐœ์ฒด๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋ณด๊ด€ ๊ธฐ๊ฐ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

beforeSettings { settings ->
    settings.caches {
        downloadedResources.removeUnusedEntriesAfterDays = 45
    }
}

๋˜ํ•œ ์ด์ „์—๋Š” Gradle ์‚ฌ์šฉ์ž ํ™ˆ์˜ org.gradle.cache.cleanup Gradle ์†์„ฑ์„ ํ†ตํ•ด์„œ๋งŒ ์บ์‹œ ์ •๋ฆฌ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ ์ •๋ฆฌ๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด ์ด์ œ Gradle ์‚ฌ์šฉ์ž ํ™ˆ์—์„œ ๋” ๋งŽ์€ ์บ์‹œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ Gradle ์‚ฌ์šฉ์ž ํ™ˆ์˜ ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ์— ์žˆ๋Š” ์„ค์ • ๊ฐœ์ฒด๋ฅผ ํ†ตํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

ํ–ฅ์ƒ๋œ ๊ฒฝ๊ณ  ๋ชจ๋“œ ๋ชจ๋‘ ๋ฐ ์‹คํŒจ๊ฐ€ ์ด์ œ ๋” ์ž์„ธํ•˜๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Gradle 8.0 ์ด์ „์—๋Š” ๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ์ธ์‡„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ๊ณ  ๋ชจ๋“œ๊ฐ€ ๊ฐ ํŠน์ • ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ํ•˜๋‚˜๋งŒ ์ธ์‡„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ผ๋ถ€ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋œ ๋‘ ๊ฐœ์˜ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ์ง€๋งŒ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์˜ ๋‹ค๋ฅธ ๋‹จ๊ณ„(์ฆ‰, ๋‹ค๋ฅธ ์Šคํƒ ์ถ”์ )์—์„œ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ํ•˜๋‚˜๋งŒ ์ธ์‡„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋ฉ”์‹œ์ง€์™€ ์Šคํƒ ์ถ”์ ์˜ ๊ฐ ์กฐํ•ฉ์— ๋Œ€ํ•ด ํ•˜๋‚˜์”ฉ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ๋Š” ๋” ์žฅํ™ฉํ•˜์ง€๋งŒ ๋” ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ข…์†์„ฑ ํ™•์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์‹ ๋ขฐ ์ด์œ  ๋ฌธ์„œํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ข…์†์„ฑ ํ™•์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ข…์†์„ฑ์ด ํ•ด๋‹น ์ข…์†์„ฑ์˜ ์ฒดํฌ์„ฌ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” XML ๊ตฌ์„ฑ ํŒŒ์ผ์— ์žˆ์œผ๋ฉฐ ์ด์ œ reason ํŠน์„ฑ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด reason ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ  ๋˜๋Š” ํ™•์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ.xml์—์„œ ์ง์ ‘ ์•„ํ‹ฐํŒฉํŠธ์— ๋Œ€ํ•ด ์„ ํƒํ•œ ์ฒดํฌ์„ฌ ํ™•์ธ์ด ํ•„์š”ํ•œ ์ด์œ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข…์†์„ฑ ํ™•์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์ผ ํ™•์ธ-๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๋‹ค์Œ ๋…ธ๋“œ.xml ์ด์ œ reason ์†์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‹ฐํŒฉํŠธ ์•„๋ž˜์˜ ์‹ ๋ขฐ XML ๋…ธ๋“œ
  • ๊ตฌ์„ฑ ์š”์†Œ ์•„๋ž˜์˜ MD5, SHA1, SHA256 ๋ฐ SHA512 ๋…ธ๋“œ

์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ  ๋˜๋Š” ์„ ํƒํ•œ ์ฒดํฌ์„ฌ ํ™•์ธ์ด ํ™•์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ.xml์—์„œ ์ง์ ‘ ์•„ํ‹ฐํŒฉํŠธ์— ํ•„์š”ํ•œ ์ด์œ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค ๋ง ํŒŒ์ผ์€ CLI์—์„œ ์‰ฝ๊ฒŒ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CI ๋นŒ๋“œ๊ฐ€ ํ‚ค ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด Gradle์€ ๋กœ์ปฌ ํ‚ค๋ง ํŒŒ์ผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์ •ํ™•์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ๋‚ด๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋ฅผ ๋‚ด๋ณด๋‚ผ ๋•Œ ์ „์ฒด ํ™•์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

You can now use the export-keys flag to export all already trusted keys:

./gradlew --export-keys

For more details, see the user manual.

 

์ฝ”๋“œ ํ’ˆ์งˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ์„ 

CodeNarc ํ”Œ๋Ÿฌ๊ทธ์ธ์ด Groovy ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

CodeNarc๋Š” ๊ทธ๋ฃจ๋น„ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ •์  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ Groovy 4์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋ณ„๋„์˜ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. Gradle์€ ํ˜„์žฌ Groovy 3์™€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

ํ–ฅํ›„ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด CodeNarc ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ด์ œ ํ˜„์žฌ Groovy ๋Ÿฐํƒ€์ž„์— ์ ํ•ฉํ•œ CodeNarc ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

CodeNarcExtension์˜ toolVersion ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ CodeNarc ๋ฒ„์ „์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ๋” ๋น ๋ฅธ PMD ๋ถ„์„

PMD ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ •์  ์ฝ”๋“œ ๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ Java ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ํ’ˆ์งˆ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ Gradle ์ž‘์—…์ž API ๋ฐ JVM ๋„๊ตฌ ์ฒด์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ์ด์ œ ์™ธ๋ถ€ ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ํ•ด๋‹น ์ž‘์—…์„ ์ด์ œ ํ•œ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Java ํ”„๋กœ์ ํŠธ์—์„œ ์ด ๋„๊ตฌ๋Š” ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฒ„์ „์˜ Java๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์œ ํ˜•์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Gradle ๋ฐ๋ชฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฒ„์ „์˜ Java๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Promoted features

ํ”„๋กœ๋ชจ์…˜ ๊ธฐ๋Šฅ์€ ์ด์ „ ๋ฒ„์ „์˜ Gradle์—์„œ ์ธํ๋ฒ ์ดํŒ…๋˜์—ˆ์ง€๋งŒ ์ด์ œ๋Š” ์ง€์›๋˜๋ฉฐ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ์ ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ "๊ธฐ๋Šฅ ์ˆ˜๋ช… ์ฃผ๊ธฐ"์˜ ์‚ฌ์šฉ์ž ์„ค๋ช…์„œ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋‹ค์Œ์€ ์ด Gradle ๋ฆด๋ฆฌ์Šค์—์„œ ํ™๋ณด๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

Promoted features in the Tooling API

GradleConnector.disconnect() ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Promoted features in the antlr plugin

AntlrSourceDirectorySet ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Promoted features in the ear plugin

Ear.getAppDirectory() ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Promoted features in the eclipse plugin

EclipseClasspath.getContainsTestFixture() ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Promoted features in the groovy plugin

๋‹ค์Œ ์œ ํ˜• ๋ฐ ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

  • GroovySourceDirectorySet
  • GroovyCompileOptions.getDisabledGlobalASTTransformations()

Promoted features in the scala plugin

์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Promoted features in the war plugin

War.getWebAppDirectory() ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Promoted features in the Settings API

Settings.dependencyResolutionManagement(Action) ๋ฐ Settings.getDependencyResolutionManagement() ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์ข…์†์„ฑ ํ™•์ธ ๊ด€๋ฆฌ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ์ด์ œ ์ค‘์•™ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ ์–ธ์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

Known issues

์•Œ๋ ค์ง„ ๋ฌธ์ œ๋Š” ์ด ๋ฆด๋ฆฌ์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ์ง์ ‘ ๊ด€๋ จ๋œ ๋ฆด๋ฆฌ์Šค ์ดํ›„์— ๋ฐœ๊ฒฌ๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ Gradle 8.0.1์—๋Š” ์•Œ๋ ค์ง„ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

External contributions

์šฐ๋ฆฌ๋Š” Gradle ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ธฐ์—ฌ๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ gradle.org/contribute ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Reporting problems

์ด ๋ฆด๋ฆฌ์Šค์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๋ฌธ์ œ ์ง€์นจ์„ ์ค€์ˆ˜ํ•˜๋Š” GitHub ๋ฌธ์ œ์— ๋ฒ„๊ทธ ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”. ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํฌ๋Ÿผ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

Gradle๊ณผ ํ•จ๊ป˜ ํ–‰๋ณต์„ ์Œ“์•„ ์ฃผ์‹œ๊ธธ ๋ฐ”๋ผ๋ฉฐ, ํŠธ์œ„ํ„ฐ ๋˜๋Š” GitHub๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

728x90
'Tool/Gradle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Gradle์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ ๊ตฌ์„ฑ ์š”์†Œ ๊ตฌ์„ฑ ๋ฐ ๋นŒ๋“œํ•˜๊ธฐ
  • [Gradle] ๋นŒ๋“œ ์ˆ˜๋ช… ์ฃผ๊ธฐ
  • Gradle์˜ ์ข…์†์„ฑ ๊ด€๋ฆฌ
  • Gradle ์ด๋ž€?(What is Gradle?)
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ๋ธŒ๋ฆฌํ•‘
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ์˜ค๋Š˜์˜๋‰ด์Šค
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ํƒœ๊ตญ
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ํ€˜์ŠคํŠธ
    ๋‰ด์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
Gradle 8.0.1 Release Notes(๋ณ€๊ฒฝ๋œ ์ )
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”