오늘은 빌드를 해서 핸드폰에 얼마나 부하가 걸리는지 테스트를 해보려했지만 각종 빌드 오류에 부딪혀 결국엔 아무것도 하지 못해서 이 gradle이 도대체 무엇인가에 대해서 알아보려고 한다.
빌드 자동화: Gradle은 코드의 컴파일, 테스트, 배포, 패키징 등 빌드 프로세스를 자동화합니다. 개발자가 매번 수동으로 해야 할 작업을 스크립트로 정의하여 자동으로 실행할 수 있습니다.
빌드 스크립트: Gradle의 작업은 스크립트로 정의됩니다. 이 스크립트는 주로 build.gradle 파일에 작성됩니다. 이 파일에서 어떤 작업을 수행할지, 어떤 플러그인을 사용할지 등을 설정합니다.
Gradle Wrapper: Gradle Wrapper는 Gradle 빌드 도구의 특정 버전을 프로젝트와 함께 제공하여, 빌드 환경이 일관되도록 합니다. gradlew라는 스크립트를 통해 Gradle을 실행할 수 있습니다.
플러그인: Gradle은 다양한 플러그인을 지원하여 특정 작업을 수행합니다. 예를 들어, java 플러그인은 Java 애플리케이션을 빌드하는 데 사용됩니다. Android 개발에서는 com.android.application 플러그인을 사용합니다.
의존성 관리: Gradle은 프로젝트에 필요한 라이브러리와 의존성을 관리합니다. dependencies 블록에서 라이브러리의 버전과 위치를 정의하고, Gradle은 이를 자동으로 다운로드하고 설정합니다.
태스크: Gradle은 다양한 작업을 태스크로 정의합니다. 예를 들어, compile, test, build 등이 태스크입니다. 태스크는 서로 종속적일 수 있으며, Gradle은 이러한 의존성을 관리합니다.
유연한 빌드 구성: Gradle은 Groovy 또는 Kotlin DSL을 사용하여 빌드 스크립트를 작성할 수 있습니다. 이는 빌드 프로세스를 매우 유연하게 설정할 수 있게 해줍니다.
병렬 빌드: Gradle은 여러 작업을 병렬로 실행할 수 있어 빌드 시간을 단축할 수 있습니다.
캐싱: Gradle은 빌드 캐싱을 통해 이전 빌드의 결과를 재사용하여 빌드 속도를 향상시킵니다.
다양한 프로젝트 지원: Gradle은 Java, Groovy, Kotlin, Scala, C/C++, Android 등 다양한 언어와 플랫폼을 지원합니다.
Android 개발에서는 Gradle이 핵심 빌드 도구로 사용됩니다. Gradle은 Android Studio와 통합되어 Android 애플리케이션을 빌드하고 패키징하는 데 필수적입니다. Android 개발에 특화된 Gradle 플러그인과 설정을 사용하여 APK 파일을 생성하고, 다양한 빌드 변형(디버그, 릴리스 등)을 관리합니다.
settings.gradle: 멀티 모듈 프로젝트의 설정 파일입니다. 포함될 모듈과 프로젝트의 구조를 정의합니다.
build.gradle: 모듈 수준에서 빌드 구성을 정의하는 파일입니다. 의존성, 플러그인, 태스크 등을 설정합니다.
gradle-wrapper.properties: Gradle Wrapper의 버전과 관련된 설정을 정의합니다. 프로젝트와 함께 배포되어 Gradle 버전을 일관되게 유지합니다.
Gradle 관련 오류가 발생하는 경우, 다음과 같은 접근 방식으로 문제를 해결할 수 있습니다:
빌드 로그 확인: 오류 메시지와 로그를 자세히 분석하여 문제의 원인을 찾습니다.
Gradle 버전: 사용 중인 Gradle 버전과 Gradle 플러그인 버전의 호환성을 확인합니다.
스크립트 수정: build.gradle 파일을 수정하여 오류를 해결합니다. 예를 들어, deprecated된 기능을 최신 방식으로 변경합니다.
Gradle 캐시 정리: 캐시 문제를 해결하기 위해 Gradle 캐시를 정리합니다.
이렇게 개념들을 알아보았지만 아직도 빌드가 되지않는상태...