1. Gradle์ด๋?
- Groovy ๊ธฐ๋ฐ์ ๋น๋ ๋๊ตฌ
- ๋น๋ ์๋ํ ์์คํ - ์์ฑํ Java ์ฝ๋๋ฅผ ์ค์ ์ ๋ง๊ฒ ์๋์ผ๋ก ๋น๋
- Maven vs Gradle
- gradle์ ์บ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ํ ์คํธ ๋ฐ๋ณต ์ ์คํ ๊ฒฐ๊ณผ ์๊ฐ์ ์ฐจ์ด๊ฐ ํผ
- ์คํฌ๋ฆฝํธ ๊ธธ์ด, ๊ฐ๋ ์ฑ gradle > maven
- ๋น๋, ํ ์คํธ ์คํ ๊ฒฐ๊ณผ gradle์ด ๋น ๋ฆ
Build
- ์์ค ์ฝ๋๋ฅผ ์คํ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ฌผ๋ก ๋ง๋๋ ๊ณผ์
- Gradle์ ์ฌ์ฉํ๋ฉด ๊ฐํธํ๊ฒ Java ์์ค ์ฝ๋๋ฅผ ์คํ ๊ฐ๋ฅํ jar ํ์ผ๋ก ๋ง๋ค์ด์ค
2. build.gradle
- Gradle ๊ธฐ๋ฐ์ ๋น๋ ์คํฌ๋ฆฝํธ
- ์์ค์ฝ๋๋ฅผ ๋น๋ํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์์กด์ฑ์ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์
- groovy / kotlin
- ๊ฐ๋ฐ์ ํ์ํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ Gradle์ด ์๋์ผ๋ก ๋ค์ด๋ก๋
- ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊ณผ์ ์์กด์ฑ์ ์๋์ผ๋ก ๊ด๋ฆฌ โ ์ถฉ๋ ๊ฑฑ์ ์์ด ๊ฐ๋ฐ์๋ง ์ง์ค ๊ฐ๋ฅ
// ์๋ฐ๋ฅผ ์ปดํ์ผํ๊ธฐ ์ํด java plugin์ ์ค์ ํ๋ค.
apply plugin: 'java'
// application์ผ๋ก ์ปดํ์ผํ๊ธฐ ์ํด ์ค์ ํ๋ค.
apply plugin: 'application'
// ์ ์ฅ์๋ฅผ ์
๋ ฅํ๋ ์น์
์ด๋ค. ์ฃผ๋ก Maven์ ์ ์ฅ์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
repositories {
mavenCentral()
}
// ์ข
์์ฑ์ ์
๋ ฅํ๋ ์น์
์ด๋ค. ๊ธฐ์กด์๋ compile์ด ์์์ผ๋ 3.0๋ฒ์ ๋ถํฐ deprecated๋์๋ค.
dependencies {
// 'group:name:version'์์ผ๋ก ์ ๋๋ค. group: 'junit', name: 'junit', version: '4.13.2'์์ผ๋ก๋ ๊ฐ๋ฅํ๋ค.
api 'com.google.guava:guava:32.1.2-jre' // ๊ฐ์ ์์กด, ์ง์ ์์กดํ๋ ๋ชจ๋ ๋ชจ๋์ rebuildํ๋ค
implementation 'junit:junit:4.13.2' // ์ง์ ์์กดํ๋ ๋ชจ๋๋ง rebuildํ๋ค.
}
application {
// ๋ฉ์ธ class์ ์์น์ ์ด๋ฆ์ ์ ๋๋ค.
mainClass = 'package.name.AppClass'
}