Gradle
Categories
- Gradle:Wrapper
- Android:Gradle - 안드로이드 그라들 빌드 관련
Example
Monorepo Projects
- Monorepo
- Bazel (by Google) - A fast, scalable, multi-language and extensible build system.
- Gradle (by Gradle, Inc) - A fast, flexible polyglot build system designed for multi-project builds.
- Lage (by Microsoft) - Task runner in JS monorepos
- Lerna - A tool for managing JavaScript projects with multiple packages.
- Nx (by Nrwl) - Next generation build system with first class monorepo support and powerful integrations.
- Rush (by microsoft) - Geared for large monorepos with lots of teams and projects. Part of the Rush Stack family of projects.
- Turborepo (by Vercel) - The high-performance build system for JavaScript & TypeScript codebases.
- Pants
- Earthly
Gradle Wrapper
Gradle Wrapper는 Gradle을 각 개발자나 CI 서버에 깔지 않고, 프로젝트에 함께 포함시켜 배포할 수 있는 방법을 제공해준다.
Wrapper를 사용하는 이유
Gradle 빌드를 실행하는 데 권장되는 방법은 Gradle Wrapper를 사용하는 것이다. Wrapper는 선언 된 버전의 Gradle을 호출하여 필요한 경우 미리 다운로드하는 스크립트다. 결과적으로 수동 설치 프로세스를 수행하지 않고도 Gradle 프로젝트를 신속하게 시작할 수 있다.
즉, Gradle Wrapper를 사용하면 이미 존재하는 프로젝트를 새로운 환경에서 바로 빌드할 수 있다. java나 gardle도 설치할 필요가 없다. 환경에 종속되지 않는다는 이야기다.
자세한 내용은 Gradle Wrapper 항목 참조.
Compatibility Matrix
Java
Gradle을 실행하려면 8~19 사이의 Java 버전이 필요합니다. Java 20 이상 버전은 아직 지원되지 않습니다.
Java 6 및 7은 여전히 컴파일 및 분기 테스트 실행에 사용할 수 있습니다.
지원되는 모든 Java 버전을 컴파일 또는 테스트에 사용할 수 있습니다.
이전 Gradle 버전의 경우 Gradle 릴리스에서 지원하는 Java 버전이 아래 표를 참조하세요.
Java version | First Gradle version to support it |
8 | 2.0 |
9 | 4.3 |
10 | 4.7 |
11 | 5.0 |
12 | 5.4 |
13 | 6.0 |
14 | 6.3 |
15 | 6.7 |
16 | 7.0 |
17 | 7.3 |
18 | 7.5 |
19 | 7.6 |
Kotlin
Gradle은 Kotlin 1.6.10~1.8.10에서 테스트되었습니다. 베타 및 RC 버전은 작동하거나 작동하지 않을 수 있습니다.
Gradle version | Embedded Kotlin version | Kotlin Language version |
5.0 | 1.3.10 | 1.3 |
5.1 | 1.3.11 | 1.3 |
5.2 | 1.3.20 | 1.3 |
5.3 | 1.3.21 | 1.3 |
5.5 | 1.3.31 | 1.3 |
5.6 | 1.3.41 | 1.3 |
6.0 | 1.3.50 | 1.3 |
6.1 | 1.3.61 | 1.3 |
6.3 | 1.3.70 | 1.3 |
6.4 | 1.3.71 | 1.3 |
6.5 | 1.3.72 | 1.3 |
6.8 | 1.4.20 | 1.3 |
7.0 | 1.4.31 | 1.4 |
7.2 | 1.5.21 | 1.4 |
7.3 | 1.5.31 | 1.4 |
7.5 | 1.6.21 | 1.4 |
7.6 | 1.7.10 | 1.4 |
8.0 | 1.8.10 | 1.8 |
Groovy
Gradle은 Groovy 1.5.8에서 4.0.0까지 테스트되었습니다.
Groovy로 작성된 Gradle 플러그인은 Gradle 및 Groovy DSL 빌드 스크립트와의 호환성을 위해 Groovy 3.x를 사용해야 합니다.
Android
Gradle은 Android Gradle Plugin 7.3, 7.4 및 8.0에서 테스트되었습니다. 알파 및 베타 버전은 작동하거나 작동하지 않을 수 있습니다.
안드로이드에 대한 자세한 내용은 호환성 매트릭스 페이지 참조.
로컬의 특정 JAR 파일을 종속성에 추가
- IntelliJ IDEA#로컬의 특정 JAR 파일을 종속성에 추가
- Maven -> pom.xml#로컬의 특정 JAR 파일을 종속성에 추가
- Apache Ant -> build.xml#로컬의 특정 JAR 파일을 종속성에 추가
build.gradle#로컬의 특정 JAR 파일을 종속성에 추가 항목 참조.
Apache Ant vs Apache Maven vs Gradle
Apache Maven#Apache Ant vs Apache Maven vs Gradle 항목 참조.
Troubleshooting
Unsupported class file major version 61
- (삽질로그) Unsupported class file major version 61 에러
- Java - Unsupported class file major version 61 - Mkyong.com
- (Android) Unsupported class file major version 에러
gradle과 jdk의 버전이 맞지 않아서 생기는 에러다.
참고로 "class file major version 61" 은 JDK 17 이다. 자세한 내용은 Java class file#General layout 항목 참조.
참고로 필자는 jdk 17 에서 11 로 다운시켰다.
버전 테이블은 #Compatibility Matrix 항목 참조.
Android Studio 에서만 잘 빌드되는 현상
Android Studio 에 빌트인 되어 있는 JDK 가 있으니 해당 경로 확인하자.
Android-studio_-settings-_gradle-jdk.png