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. ๋์ ์ ๋ฌด ์คํ์ผ์?
Gradle 8.0.2 Release Notes
8.0.1 ๋์จ์ง๋ ์ผ๋ง ์๋๋๋ฐ...

์ด๊ฒ์ Gradle 8.0์ ๋ ๋ฒ์งธ ํจ์น ๋ฆด๋ฆฌ์ค์ ๋๋ค.
ํด๊ฒฐ๋ ๋ฌธ์
- #23698 Gradle 8 RC2์ ๋ฉํ ๊ณต๊ฐ์ด ๋ถ์กฑํฉ๋๋ค.
- #23962 ๋ช ์์ ํด์ฒด์ธ์ด ์๋ ์๋ฐ/์ค์นผ๋ผ ๋น๋: Gradle 8.0.1/Scala 2.13์์ ๋น๋ ์คํจ
- #23990 Gradle 8.0.+ JavaCompile์์ ์ฌ์ฉ์ ์ง์ ์ปดํ์ผ๋ฌ์ ๋ํ ์ง์์ ์๋์ผ๋ก ์ค๋จํ์ต๋๋ค.
- #24031 ๊ณ์ธก ๋ณํ๊ธฐ๊ฐ Gradle 8 ๋ฐ 7.6์์ ๋ค๋ฅธ ํด๋์ค ํ์ผ์ ์์ฑํ์ฌ ์๊ฒฉ ๋น๋ ์บ์ ๋๋ฝ์ด ๋ฐ์ํฉ๋๋ค.
- #24109 ์ด๋ฏธ ํ์ธ๋ ๊ตฌ์ฑ ํ์ฅ์ด ๋ ์ด์ ์ ๋๋ก ์๋ํ์ง ์์
- #24122 ์ผ๋ถ ํ๋ฌ๊ทธ์ธ์ ๊ตฌ์ฑ ์บ์ ์ํ ์ ๋ฐ์ดํธ
- #24129 ํฌํจํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ์ฌ์์์ ๋น๋ Gradle 8์์ ๋์ธํ๋ฒ ์ด์ ๋์์ง๋ง ๋ฌธ์๋ ์ฌ์ ํ ์ธํ๋ฒ ์ด์ ์ค์ด๋ผ๊ณ ๋งํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ํจ์น ๋ฆด๋ฆฌ์ค์์ ํด๊ฒฐ๋ ๋ฌธ์ :
- #21551 ๋๊ตฌ ์ฒด์ธ๊ณผ Scala ํ๋ฌ๊ทธ์ธ์ ๋ฌธ์ ํตํฉ ๋ฐ ๋์ ํ๋๊ทธ ๋ฌธ์
- #23888 --์๋ก์ด ์ฌ์ฉ ์ค๋จ ์ฃผ๊ธฐ ์์ด ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ ์ค๋จ์ด ๋ฌดํจํ๋๋ ์ด์ ์์ด ๊ฐ์๊ธฐ ์ฌ๋น๋ ์์
- #23905 Gradle 8.0์ด ๋ฌธ์์ด ํด๋์ค ์ค๋ฅ์์ isBlank๋ฅผ ์ฐพ์ ์ ์๋ ์ค์นผ๋ผ ๋น๋ ์คํจ
์ฌ์ฉ์๋ 8.0 ๋์ 2.8.0๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ๋ฆด๋ฆฌ์ค์์๋ Kotlin DSL ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ปดํ์ผํ๋ ๋ฐ ์์๋๋ ์๊ฐ์ ์ค์ด๊ณ Kotlin DSL์ API ์์ค์ Kotlin 1.8๋ก ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ํธ์ถ์์ ๊ตฌ์ฑ ์บ์๋ ๊ธฐ์กด ๋ณ๋ ฌ ๋ชจ๋์ ๋นํด ๋ ๋ง์ ์์ ์ ๋ณ๋ ฌ๋ก ์คํํ์ฌ ๋น๋ ์๋๋ฅผ ๋์ ๋๋ค.
๋ํ ์บ์ ๋๋ ํฐ๋ฆฌ์ ๋ณด์กด ์๊ฐ์ ๊ตฌ์ฑํ์ฌ Gradle ์ฌ์ฉ์ ํ์ ํฌ๊ธฐ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์บ์ ์ ๋ฆฌ๋ฅผ ๋นํ์ฑํํ ์๋ ์์ต๋๋ค.
Gradle 8.0์๋ ๋ง์ ๋ฒ๊ทธ ์์ ๋ฐ ๊ธฐํ ์ผ๋ฐ์ ์ธ ๊ฐ์ ์ฌํญ์ด ์์ต๋๋ค. ์ฃผ ๋ฒ์ ์ธ ์ด ๋ฆด๋ฆฌ์ค์๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ API ๋ฐ ๋์์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ๋ ์์ต๋๋ค. ์ญ์ ๋ API ๋ฐ ๋์์ ๋ํ ์ง์นจ์ Gradle 7.x ์ ๊ทธ๋ ์ด๋ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ชฉ์ฐจ
- ์ ๊ทธ๋ ์ด๋ ์ง์นจ
- ์๋ก์ด ๊ธฐ๋ฅ, ์ฑ๋ฅ ๋ฐ ์ ์ฉ์ฑ ๊ฐ์
- ์ฝํ๋ฆฐ DSL
- buildSrc ๋น๋์ ๋ํ ๊ฐ์ ์ฌํญ
- ๊ตฌ์ฑ ์บ์
- ์๋ฐ ํด์ฒด์ธ ๊ฐ์ ์ฌํญ
- ์ผ๋ฐ์ ์ธ ๊ฐ์ ์ฌํญ
- ์ฝ๋ ํ์ง ํ๋ฌ๊ทธ์ธ ๊ฐ์
- ์น๊ฒฉ๋ ๊ธฐ๋ฅ
- ํด๊ฒฐ๋ ๋ฌธ์
- ์๋ ค์ง ๋ฌธ์
- ์ธ๋ถ ๊ธฐ๋ถ
- ๋ฌธ์ ๋ณด๊ณ
์ ๊ทธ๋ ์ด๋ ์ง์นจ
๋ํผ๋ฅผ ์ ๋ฐ์ดํธํ์ฌ Gradle 8.0.2๋ฅผ ์ฌ์ฉํ๋๋ก ๋น๋๋ฅผ ์ ํํฉ๋๋ค.
./gradlew ๋ํผ --gradle-version=8.0.2
Gradle 7.x ์ ๊ทธ๋ ์ด๋ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ฌ ์ง์ ์ค๋จ, ํธํ์ฑ์ด ์์๋๋ ๋ณ๊ฒฝ, Gradle 8.0.2๋ก ์ ๊ทธ๋ ์ด๋ํ ๋์ ๊ธฐํ ๊ณ ๋ ค ์ฌํญ์ ๋ํด ์์๋ณด์ธ์.
Java, Groovy, Kotlin ๋ฐ Android ํธํ์ฑ์ ๋ํด์๋ ์ ์ฒด ํธํ์ฑ ๋ ธํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋ก์ด ๊ธฐ๋ฅ, ์ฑ๋ฅ ๋ฐ ์ ์ฉ์ฑ ๊ฐ์
Kotlin DSL
Gradle์ Kotlin DSL์ ์ง์๋๋ IDE์์ ํฅ์๋ ํธ์ง ํ๊ฒฝ(์ฐ์ํ ์ฝํ ์ธ ์ง์, ๋ฆฌํฉํ ๋ง, ๋ฌธ์ํ ๋ฑ)๊ณผ ํจ๊ป Groovy DSL์ ๋ํ ๋์ฒด ๊ตฌ๋ฌธ์ ์ ๊ณตํฉ๋๋ค.
๋ ๋น ๋ฅธ Kotlin DSL ๋น๋ ์คํฌ๋ฆฝํธ ์ปดํ์ผ
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>
}
- ํ๋ฌ๊ทธ์ธ ์๋ณ์ ๋ฌธ์์ด์ ์ํด ์์ฒญ๋ ํ๋ฌ๊ทธ์ธ
- ํ๋ฌ๊ทธ์ธ ์๋ณ์ ๋ฐ ๋ฒ์ ๋ฐ/๋๋ ํ๋ฌ๊ทธ์ธ ์ ์ฉ ํ๋๊ทธ์ ์ํด ์์ฒญ๋ ํ๋ฌ๊ทธ์ธ
- kotlin์ผ๋ก ์์ฒญ ๋ ํ๋ฌ๊ทธ์ธ (...) ๋์ฐ๋ฏธ
ํ๋ฌ๊ทธ์ธ(์: alias(libs.plugins.acme)) ๋๋ ์ ํ์ด ์์ ํ ํ๋ฌ๊ทธ์ธ ์ ๊ทผ์(์: 'acme-plugin')์ ๋ฒ์ ์นดํ๋ก๊ทธ ๋ณ์นญ์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋์ง ์์ต๋๋ค. ์ด๋ฌํ ํ์์ ๋ํ ์ง์์ ๋์ค์ ์ถ๊ฐ๋ ์์ ์ ๋๋ค.
ํ๋ฌ๊ทธ์ธ ๊ตฌ๋ฌธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์ธ์ plugins {} ๋ธ๋ก ์ ์ ํ๋ ๊ตฌ๋ฌธ์ ๋ํ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Kotlin DSL์ด Kotlin API ๋ ๋ฒจ 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์ ์๋ก์ด ์๋ฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ ์๋ .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 ํ๋ฌ๊ทธ์ธ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ๊ณ , ๋ณ๊ฒฝ๋ ๋์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
buildSrc ๋น๋์ ๋ํ ๊ฐ์ ์ฌํญ
์ด ๋ฆด๋ฆฌ์ค์๋ buildSrc ๋น๋๊ฐ ํฌํจ๋ ๋น๋์ฒ๋ผ ๋์ํ๋๋ก ๋ช ๊ฐ์ง ๊ฐ์ ์ฌํญ์ด ํฌํจ๋์ด ์์ต๋๋ค. ํฌํจ๋ ๋น๋๋ ์ฆ๋ถ ๋น๋ ๋ฐ ์์ ์บ์ฑ์ ๋ ์ ํ์ฉํ๊ธฐ ์ํด ๋น๋ ๋ ผ๋ฆฌ๋ฅผ ๋ณ๋์ ํ๋ก์ ํธ ๊ตฌ์ฑ์ผ๋ก ๊ตฌ์ฑํ๋ ๋์ฒด ๋ฐฉ๋ฒ์ ๋๋ค. ์ด์ ๊ทธ๋ค์ ๋์ผํ ํํ์ ์ ๊ณตํฉ๋๋ค.
buildSrc ์์ ์ ์ง์ ์คํ
์ด์ ํฌํจ๋ ๋น๋์ ์์ ์ ์ฌ์ฉ๋ ๊ฒ๊ณผ ๋์ผํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ช ๋ น์ค์์ buildSrc ๋น๋์ ์์ ์ ์คํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด gradle buildSrc:build๋ฅผ ์ฌ์ฉํ์ฌ buildSrc ๋น๋์์ ๋น๋ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
buildSrc๋ ๋ค๋ฅธ ๋น๋๋ฅผ ํฌํจ ํ ์ ์์ต๋๋ค.
์ด์ buildSrc ๋น๋๋ buildSrc/settings.gradle.kts ๋๋ buildSrc/settings.gradle์์ ์ ์ธํ์ฌ ๋ค๋ฅธ ๋น๋๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด buildSrc๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๋์ ๋น๋ ๋ ผ๋ฆฌ๋ฅผ ๋ ์ ์กฐ์งํ ์ ์์ต๋๋ค.
์ด ์ค์ ์คํฌ๋ฆฝํธ์์ pluginsManagement { includeBuild(someDir) } ๋๋ includeBuild(someDir)๋ฅผ ์ฌ์ฉํ์ฌ buildSrc์ ๋ค๋ฅธ ๋น๋๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
buildSrc์ ๋ํ ํ ์คํธ๊ฐ ๋ ์ด์ ์๋์ผ๋ก ์คํ๋์ง ์์ต๋๋ค.
Gradle์ buildSrc์ ์ถ๋ ฅ์ ๋น๋ํ ๋ ํด๋น ์ถ๋ ฅ์ ์์ฑํ๋ ์์ ๋ง ์คํํฉ๋๋ค. ๋ ์ด์ ๋น๋ ์์ ์ ์คํํ์ง ์์ต๋๋ค. ํนํ ์ด๋ buildSrc ๋ฐ ํด๋น ํ์ ํ๋ก์ ํธ์ ํ ์คํธ๊ฐ ํ์ํ์ง ์์ ๋ ๋น๋ ๋ฐ ์คํ๋์ง ์์์ ์๋ฏธํฉ๋๋ค.
์์์ ์ค๋ช ํ ๋๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์ ๋์ผํ ๋ฐฉ์์ผ๋ก buildSrc์ ๋ํ ํ ์คํธ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ด๊ธฐํ ์คํฌ๋ฆฝํธ๊ฐ buildSrc์ ์ ์ฉ๋ฉ๋๋ค.
--init-script๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๋ น์ค์ ์ง์ ๋ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๋ ์ด์ ๊ธฐ๋ณธ ๋น๋ ๋ฐ ํฌํจ๋ ๋ชจ๋ ๋น๋ ์ธ์๋ buildSrc์ ์ ์ฉ๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๊ตฌ์ฑ ์บ์
๊ตฌ์ฑ ์บ์๋ ๊ตฌ์ฑ ๋จ๊ณ์ ๊ฒฐ๊ณผ๋ฅผ ์บ์ ํ๊ณ ํ์ ๋น๋์ ๋ค์ ์ฌ์ฉํ์ฌ ๋น๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค. ์ด๋ ๋น๋ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ ๋ฐฐ์ ๊ธฐ๋ฅ์ ๋๋ค.
์ฒซ ๋ฒ์งธ ๋น๋์์ ๋ ๋ง์ ๋ณ๋ ฌ ์ฒ๋ฆฌ
์ด์ ๊ตฌ์ฑ ์บ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ๋ ฌ ์คํ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ๊ฒ๋ณด๋ค ๋ ์ธ๋ถํ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Gradle 8.0๋ถํฐ ๊ตฌ์ฑ ์บ์๋ฅผ ์ฌ์ฉํ ๋ ์์ ์ด ์ฒซ ๋ฒ์งธ ๋น๋์ ๋ณ๋ ฌ๋ก ์คํ๋ฉ๋๋ค.
Gradle์ ๊ตฌ์ฑ ์บ์ ํญ๋ชฉ์ ์ฌ์ฌ์ฉํ ๋ ํญ์ ์์ ์ ๋ณ๋ ฌ๋ก ์คํํ์ต๋๋ค. ๋ชจ๋ ์์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณ๋ ฌ๋ก ์คํ๋๋ฉฐ, ๋์ผํ ํ๋ก์ ํธ ๋ด์ ์์ ์๋ ์ข ์์ฑ ์ ์ฝ ์กฐ๊ฑด์ด ์ ์ฉ๋ฉ๋๋ค. ์ด์ ์บ์ ํญ๋ชฉ์ ์ ์ฅํ ๋๋์ด ์์ ์ ์ํํฉ๋๋ค.
๊ตฌ์ฑ ์บ์๊ฐ ์ฌ์ฉ ์ค์ ๋๊ณ Gradle์ด ํ์ฌ ๋น๋์ ํธํ๋๋ ์บ์ ํญ๋ชฉ์ ์ฐพ์ ์ ์์ผ๋ฉด ์บ์์์ ์์ ์ ๋ก๋ํ๊ณ ๊ฒฉ๋ฆฌํ์ฌ ์คํํฉ๋๋ค. Gradle์ด ์ ์ ํ ์บ์ ํญ๋ชฉ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ๊ตฌ์ฑ ๋จ๊ณ๋ฅผ ์คํํ์ฌ ํ์ํ ์์ ์ ๊ฒฐ์ ํ๊ณ ์ ์บ์ ํญ๋ชฉ์ ์ ์ฅํ ๋ค์ ์ ์ฅ๋ ์ํ์ ๋ฐ๋ผ ์ฆ์ ๋น๋๋ฅผ ์คํํฉ๋๋ค.
์ด ์๋ก์ด ๋์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ด์ ์ด ์์ต๋๋ค.
- ์ญ์ง๋ ฌํ ์ค์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ฌธ์ ๋ ์บ์ ๋๋ฝ ๋น๋์ ๋ณด๊ณ ๋๋ฏ๋ก ๋ ์ฝ๊ฒ ๊ฒ์ํ ์ ์์ต๋๋ค.
- ์์ ์ ์บ์ ๋๋ฝ ๋ฐ ์บ์ ์ ์ค ํ์ ๋น๋ ๋ชจ๋์์ ๋์ผํ ์ํ๋ฅผ ๊ฐ์ง๋ฉฐ ๋น๋ ๊ฐ์ ์ผ๊ด์ฑ์ ํ์ฉํฉ๋๋ค.
- Gradle์ ์บ์ ๋๋ฝ ๋น๋์์ ์์ ์ ์คํํ๊ธฐ ์ ์ ๊ตฌ์ฑ ์ํ์์ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ์ฌ ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ผ ์ ์์ต๋๋ค.
์บ์ ๋๋ฝ๊ณผ ์บ์ ์ ์ค ๋น๋ ๊ฐ์ ์ด๋ฌํ ์ผ๊ด๋ ๋์์ ์ฒซ ๋ฒ์งธ(์บ์ ๋๋ฝ) ๋น๋์์ ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ผ๋ฏ๋ก ๊ตฌ์ฑ ์บ์ ์ฌ์ฉ์ผ๋ก ์ ํํ๋ ์ฌ์ฉ์์๊ฒ ๋์์ด ๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํต์ฌ ํ๋ฌ๊ทธ์ธ๊ณผ์ ํ์ฅ๋ ํธํ์ฑ
gradle init ๋ช ๋ น์ ๊ตฌ์ฑ ์บ์๊ฐ ํ์ฑํ๋ ์ํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ANTLR ํ๋ฌ๊ทธ์ธ ๋ฐ Groovy DSL ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ์คํฌ๋ฆฝํธ๋ ์ด์ ๊ตฌ์ฑ ์บ์์ ํธํ๋ฉ๋๋ค.
๋ชจ๋ ํต์ฌ Gradle ํ๋ฌ๊ทธ์ธ์ ๋ํ ๊ตฌ์ฑ ์บ์ ์ง์์ ํ์ฌ ์ํ๋ ๊ตฌ์ฑ ์บ์ ๋ฌธ์์์ ํ์ธํ ์ ์์ต๋๋ค.
์๋ฐ ํด์ฒด์ธ ๊ฐ์ ์ฌํญ
์ ๋ฐ์ดํธ๋ ํด์ฒด์ธ ๋ค์ด๋ก๋ ์ ์ฅ์
Gradle 7.6์์๋ ์ ์ฐ์ฑ ํฅ์์ ์ํด ํด์ฒด์ธ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ๋์ ๋์์ต๋๋ค . Gradle 8.0์๋ ๋ ์ด์ ๊ธฐ๋ณธ ํด์ฒด์ธ ํ๋ก๋น์ ๋๊ฐ ์์ต๋๋ค. ํ๋ ์ด์์ Java ๋๊ตฌ ์ฒด์ธ ์ ์ฅ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ Foojay ํด์ฒด์ธ ํ๋ฌ๊ทธ์ธ๊ณผ ๊ฐ์ ํด์ฒด์ธ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ํตํด ์ํ ํ ์ ์์ต๋๋ค.
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version("0.4.0")
}
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ผ๋ฐ์ ์ธ ๊ฐ์ ์ฌํญ
๊ตฌ์ฑ ๊ฐ๋ฅํ 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์ ๋ก์ปฌ ํค๋ง ํ์ผ์ ์ง์ํฉ๋๋ค. ์ด ํ์ผ์ ์ ํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์์ฃผ ๋ด๋ณด๋ด์ผ ํฉ๋๋ค. ๋ ์ด์ ์ ๋ขฐํ ์ ์๋ ํค๋ฅผ ๋ด๋ณด๋ผ ๋ ์ ์ฒด ํ์ธ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค.
์ด์ export-keys ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ ์ ๋ขฐํ ์ ์๋ ๋ชจ๋ ํค๋ฅผ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
./gradlew --export-keys
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ค์ฒฉ๋ ๋ณตํฉ ๋น๋๋ ๋ ๋ง์ ๊ฒฝ์ฐ์ ์๋ํฉ๋๋ค.
ํนํ ๋ ํฐ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์กฐํํ๊ธฐ ์ํด buildSrc ๋์ ํฌํจ๋ ๋น๋ ๋ ผ๋ฆฌ ๋น๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ์ด์ ๋น๋ ๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ฌ ํ๋ก์ ํธ๋ฅผ ํฌํจํ๋ ๋ณตํฉ ๋น๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ์ค์ ์ ์ํํฉ๋๋ค.
.
โโโ rootBuild
โ โโโ settings.gradle.kts
โ โโโ build-logic
โ โโโ settings.gradle
โโโ included-build
โโโ settings.gradle.kts
โโโ build-logic
โโโ settings.gradle.kts
// rootBuild/settings.gradle
includeBuild("build-logic")
includeBuild("../included-build")
// included-build/settings.gradle
includeBuild("build-logic")
Gradle 8 ์ด์ ์๋ :build-logic์ ๊ฒฝ๋ก ์ถฉ๋๋ก ์ธํด ์ด ๋น๋๊ฐ ์คํจํ์ต๋๋ค. ์ด์ ๋๋ ํฐ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ์ค์ฒฉ๋ ํฌํจ๋ ๋น๋์ ๊ฒฝ๋ก๋ฅผ ํ ๋นํ๋ ๋ฐ ์ฌ์ฉ๋๋ฏ๋ก ์๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋น๋ ๋ก์ง ๋น๋์์ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
./gradlew :build-logic:test
./gradlew :included-build:build-logic:test
์์ธํ ๋ด์ฉ์ ๋ณตํฉ ๋น๋ ๋ฐ ๋น๋ ๋ ผ๋ฆฌ์ ๋ํ ์ฌ์ฉ์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์. ์ ๊ทธ๋ ์ด๋ ๊ฐ์ด๋๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ํฌํจ๋ ๋น๋์ ๋ํ ๋น๋ ๊ฒฝ๋ก์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ํด ์์๋ณด์ธ์.
์ฝ๋ ํ์ง ํ๋ฌ๊ทธ์ธ ๊ฐ์
CodeNarc ํ๋ฌ๊ทธ์ธ์ด Groovy ๋ฐํ์ ๋ฒ์ ์ ๊ฐ์งํฉ๋๋ค.
CodeNarc๋ ๊ทธ๋ฃจ๋น ํ๋ก์ ํธ์ ๋ํ ์ ์ ๋ถ์์ ์ํํฉ๋๋ค. ์ด์ Groovy 4์ ํจ๊ป ์ฌ์ฉํ ๋ณ๋์ ๋ฒ์ ์ ๊ฒ์ํฉ๋๋ค. Gradle์ ํ์ฌ Groovy 3์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
ํฅํ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด CodeNarc ํ๋ฌ๊ทธ์ธ์ ์ด์ ํ์ฌ Groovy ๋ฐํ์์ ์ ํฉํ CodeNarc ๋ฒ์ ์ ์๋์ผ๋ก ๊ฐ์งํฉ๋๋ค.
CodeNarcExtension์ toolVersion ์์ฑ์ ์ฌ์ฉํ์ฌ CodeNarc ๋ฒ์ ์ ๋ช ์์ ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ณ๋ ฌ ์คํ์ผ๋ก ๋ ๋น ๋ฅธ PMD ๋ถ์
PMD ํ๋ฌ๊ทธ์ธ์ ์ ์ ์ฝ๋ ๋ถ์๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ์ Java ์์ค ํ์ผ์ ๋ํ ํ์ง ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค. ์ด์ Gradle ์์ ์ API ๋ฐ JVM ๋๊ตฌ ์ฒด์ธ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋๊ตฌ๋ ์ด์ ์ธ๋ถ ์์ ์ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ถ์์ ์ํํ๋ฏ๋ก ํด๋น ์์ ์ ์ด์ ํ ํ๋ก์ ํธ ๋ด์์ ๋ณ๋ ฌ๋ก ์คํํ ์ ์์ต๋๋ค.
Java ํ๋ก์ ํธ์์ ์ด ๋๊ตฌ๋ ํ๋ก์ ํธ์ ํ์ํ ๊ฒ๊ณผ ๋์ผํ ๋ฒ์ ์ Java๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ์ ํ์ ํ๋ก์ ํธ์์๋ Gradle ๋ฐ๋ชฌ์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฒ์ ์ Java๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์น๊ฒฉ๋ ๊ธฐ๋ฅ
ํ๋ก๋ชจ์ ๊ธฐ๋ฅ์ ์ด์ ๋ฒ์ ์ Gradle์์ ์ธํ๋ฒ ์ดํ ๋์์ง๋ง ์ด์ ๋ ์ง์๋๋ฉฐ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ์ ์ฉ๋๋ ๊ธฐ๋ฅ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ "๊ธฐ๋ฅ ์๋ช ์ฃผ๊ธฐ"์ ์ฌ์ฉ์ ์ค๋ช ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๋ค์์ ์ด Gradle ๋ฆด๋ฆฌ์ค์์ ํ๋ณด๋ ๊ธฐ๋ฅ์ ๋๋ค.
๋๊ตฌ API์ ์น๊ฒฉ๋ ๊ธฐ๋ฅ
GradleConnector.disconnect() ๋ฉ์๋๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
antlr ํ๋ฌ๊ทธ์ธ์ ์น๊ฒฉ๋ ๊ธฐ๋ฅ
AntlrSourceDirectorySet ์ธํฐํ์ด์ค๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๊ท ํ๋ฌ๊ทธ์ธ์ ํ๋ก๋ชจ์ ๊ธฐ๋ฅ
Ear.getAppDirectory() ๋ฉ์๋๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ดํด๋ฆฝ์ค ํ๋ฌ๊ทธ์ธ์ ํ๋ก๋ชจ์ ๊ธฐ๋ฅ
EclipseClasspath.getContainsTestFixture() ๋ฉ์๋๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๊ทธ๋ฃจ๋น ํ๋ฌ๊ทธ์ธ์ ํ๋ก๋ชจ์ ๊ธฐ๋ฅ
๋ค์ ์ ํ ๋ฐ ๋ฉ์๋๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
- GroovySourceDirectorySet
- GroovyCompileOptions.getDisabledGlobalASTTransformations()
์ค์นผ๋ผ ํ๋ฌ๊ทธ์ธ์ ํ๋ก๋ชจ์ ๊ธฐ๋ฅ
์ธํฐํ์ด์ค๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
war ํ๋ฌ๊ทธ์ธ์ ํ๋ก๋ชจ์ ๊ธฐ๋ฅ
War.getWebAppDirectory() ๋ฉ์๋๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ค์ API์ ํ๋ก๋ชจ์ ๊ธฐ๋ฅ
Settings.pluginManagement์ includeBuild ๋ฉ์๋๋ ์ด์ ์์ ์ ์ ๋๋ค. ๋น๋ ๋ ผ๋ฆฌ์ ๊ธฐ์ฌํ๋ ๋น๋๋ฅผ ํฌํจํ๋ ๊ถ์ฅ ๋ฐฉ๋ฒ์ ๋๋ค.
Settings.dependencyResolutionManagement(Action) ๋ฐ Settings.getDependencyResolutionManagement() ๋ฉ์๋๋ ์ด์ ์์ ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ข ์์ฑ ํ์ธ ๊ด๋ฆฌ์ ๋ชจ๋ ๋ฉ์๋๋ ์ด์ ์ค์ ๋ฆฌํฌ์งํ ๋ฆฌ ์ ์ธ์ ์ํ ๋ฉ์๋๋ฅผ ์ ์ธํ๊ณ ์์ ์ ์ ๋๋ค.
ํด๊ฒฐ๋ ๋ฌธ์
Gradle 7.8.0์์ 2 ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค.
- [#24129] - ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ ์ฌ์์ ๋น๋ ํฌํจGradle 8์์ ๋ฐฐ์ ํด์ ๋์์ง๋ง ๋ฌธ์๋ ์ฌ์ ํ ๋ฐฐ์ ์ค์ด๋ผ๊ณ ๋งํฉ๋๋ค.
- [#24122] - ์ผ๋ถ ํ๋ฌ๊ทธ์ธ์ ๋ํ ๊ตฌ์ฑ ์บ์ ์ํ ์ ๋ฐ์ดํธ
- [#24109] - ์ด๋ฏธ ํด๊ฒฐ๋ ๊ตฌ์ฑ ํ์ฅ์ด ๋ ์ด์ ์ ๋๋ก ์๋ํ์ง ์์
- [#24031] - InstrumentingTransformer๋ Gradle 8 ๋ฐ 7.6์์ ๋ค๋ฅธ ํด๋์ค ํ์ผ์ ์์ฑํ์ฌ ์๊ฒฉ ๋น๋ ์บ์ ๋๋ฝ์ผ๋ก ์ด์ด์ง๋๋ค.
- [#23990] - Gradle 8.0.+ 'JavaCompile'์์ ์ฌ์ฉ์ ์ ์ ์ปดํ์ผ๋ฌ์ ๋ํ ์ง์์ ์๋์ผ๋ก ์ค๋จํ์ต๋๋ค.
- [#23962] - ๋ช ์ ์ ํด์ฒด์ธ์ด์๋ ์๋ฐ / ์ค์นผ๋ผ ๋น๋ : Gradle 8.0.1 / Scala 2.13์์ ๋น๋ ์คํจ
- [#23698] - Gradle 8 RC2๋ ๋ฉํ ๊ณต๊ฐ์ด ๋ถ์กฑํฉ๋๋ค.
์๋ ค์ง ๋ฌธ์
์๋ ค์ง ๋ฌธ์ ๋ ์ด ๋ฆด๋ฆฌ์ค์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ง์ ๊ด๋ จ๋ ๋ฆด๋ฆฌ์ค ์ดํ์ ๋ฐ๊ฒฌ๋ ๋ฌธ์ ์ ๋๋ค.
ํ์ฌ Gradle 8.0.2์ ์๋ ค์ง ๋ฌธ์ ๋ ์์ต๋๋ค.