New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. ๊ธ์ ์ ์น๊ตฌ์๊ฒ ๋น๋ ธ๋๋ฐ ์ค๋์ด ๋์ ์ฃผ๊ธฐ๋ก ํ๋ .. ๊ทธ๋ฐ๋ฐ ์นด๋๊ฐ์ ๋ด์ผํ๋ ๋ ๋ ์ค๋์ธ๋ฐ... ์ด๊ฑธ ์ด์ฉ๋...
4. ์ฐ๋ฆฌ ํ์ฌ๋ ์ค์ํ ์์ฌ ๊ฒฐ์ ์ ํ ๋?
5. ์ด์ฌํ ์ผํ ๋๋ฅผ ์ํ ์ ๋ฌผ์ ์ฃผ๊ณ ์ถ๋ค. ์ด๋ค๊ฒ ์ข์๊น?
6. ์ํ์์ ํฌ์์ํ์ ์ถ์ฒ๋ฐ์๋ค. ์ด๋ค๊ฑธ ๊ฐ์ ํ์ง?
7. ํ์ฌ์์์ ๋๋?
8. ๊ฟ์์ ๊นจ์ด๋๋ 20๋ ์ ์ผ๋ก ๋์๊ฐ๋ค. ๋น์ ์ด ์ ์ผ ๋จผ์ ํ๋์ผ์?
9. ๋ด๊ฐ ์ธ์ฌ ๋ด๋น์๋ผ๋ฉด ์ ๊ท ์ ์ฌ์ ์ฑ์ฉ ์ ์ ์ผ ์ค์ํ๊ฒ ๋ณด๋๊ฒ์?
10. ํ์ฌ์ ์ ๋ง ์ซ์ดํ๋ ๋๋ฃ๊ฐ ์๋ค๋ฉด?
11. ๊ฐ๋ํ ์ง์ ๊ฐ์ฅ์ด ๋์๋ค.. ์๋ ์ ์์ผ ๋ ์ ๋ฌผ์?
12. ํ์ ํ์ฌ ์ถ๊ทผ ์คํ์ผ์?
13.ํ์ฌ ์ฒด์ก๋ํ ํ๋ ๋ ์ด๋ค. ์ค๋ ๋ญํ์ง?
14. ๋์ ์ ๋ฌด ์คํ์ผ์?
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>
}
- Plugin requested by plugin identifier string
- Plugin requested by plugin identifier and version and/or the plugin apply flag
- 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๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ ํผ๋๋ฐฑ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค.