Gradle이란?
Gradle은 JVM 기반 프로젝트를 위한 빌드 자동화 도구입니다. Gradle은 Groovy 또는 Kotlin DSL을 사용하여 프로젝트의 빌드 스크립트를 작성할 수 있습니다. IntelliJ IDEA에서 Gradle을 사용하면 프로젝트의 의존성 관리, 빌드, 테스트, 패키징 등을 손쉽게 관리할 수 있습니다.
다양한 빌드 옵션과 유연성을 제공합니다. IntelliJ IDEA와의 통합은 개발 작업을 더 편리하게 만들어 줍니다.
버전에 맞는 적절한 Gradle-JVM 을 설치한 후 적용해 줍니다!
Gradle Keyword🔑
- plugins: 빌드 스크립트에서 사용할 Gradle 플러그인을 지정합니다. 예를 들어, Java 또는 Kotlin 플러그인을 추가하여 Java 또는 Kotlin 프로젝트를 빌드할 수 있습니다.
- repositories: 프로젝트에서 의존성을 해결하기 위해 사용할 저장소(repository)를 정의합니다. 주로 Maven Central 또는 JCenter와 같은 중앙 저장소를 사용하지만 사용자 지정 저장소도 지정할 수 있습니다.
- dependencies: 프로젝트의 외부 라이브러리 의존성( 쉬운 말로 사용성, 사용하는 것 ) 을 정의합니다. 이 블록에서 다른 라이브러리를 프로젝트에 추가할 수 있습니다. 일반적으로 groupId, artifactId, version의 형식으로 지정됩니다.
- sourceSets: 소스 세트를 정의하고 관리합니다. 각 소스 세트는 소스 코드, 리소스 및 테스트 코드를 포함할 수 있으며, 빌드 프로세스에서 사용됩니다.
- task: 빌드 작업을 정의합니다. 특정 작업을 수행하기 위해 사용할 수 있으며, 빌드, 테스트, 배포 등을 처리할 수 있습니다. 예를 들어, assemble, compileJava, test 등의 작업이 있습니다.
- repositories: 의존성을 해결하기 위해 사용할 저장소(repository)를 정의합니다. 일반적으로 Maven Central, JCenter 등의 중앙 저장소를 사용하지만 사용자 정의 저장소도 지정할 수 있습니다.
- buildscript: 빌드 스크립트 자체에 대한 의존성 및 구성을 정의합니다. 일반적으로 플러그인 또는 외부 라이브러리의 클래스 패스를 설정하는 데 사용됩니다.
- apply: 특정 플러그인 또는 스크립트를 적용합니다.
사라지고 있는 Gradle Keyword❓
- compile, runtime, testCompile, testRuntime 등의 configuration: Gradle 7.0부터는 이러한 구성이 더 이상 사용되지 않으며, implementation, runtimeOnly, testImplementation, testRuntimeOnly 등으로 대체되었습니다.
- compile이 사라진 이유는 변경 사항이 있을 때마다 전체를 재build 하기 때문에 성능이 떨어지므로 implementation으로 대체하게 된 것입니다.
- Lombok의 대표적인 역할 : 코드 생성 -> 컴파일만 하고 싶으면 compileOnly , 런타임에만 필요 ( DB관련 된 것이 많은데) 그럴 때는 runtimeOnly
- AntBuilder: Gradle 6.0부터는 AntBuilder 클래스가 deprecated되었으며, 대신 project.ant를 사용하는 것이 권장됩니다.
- Ivy 사용 및 관련 API: Gradle 7.0부터는 Ivy를 사용한 의존성 해결과 관련된 API가 deprecated되었습니다.
- Legacy publishing 메커니즘: Gradle 7.0부터는 Maven 및 Ivy와 같은 레거시 출판 메커니즘이 deprecated되었습니다. 대신 maven-publish 플러그인을 사용하여 출판하는 것이 권장됩니다.
- compileOnly, runtimeOnly 구성: Gradle 6.4부터는 compileOnly와 runtimeOnly 구성이 deprecated되었으며, implementation과 runtimeOnly로 대체되었습니다.
- configuration.afterEvaluate(): Gradle 7.0부터는 afterEvaluate() 메서드가 deprecated되었으며, 대신 beforeEvaluate() 블록을 사용하는 것이 권장됩니다.
'BackEnd' 카테고리의 다른 글
클라우드 기반 백엔드 : DTO->Entity 변환 시기& Spring 유효성 검사 (0) | 2024.05.17 |
---|---|
클라우드 기반 백엔드 기초 : 로그 레벨( Logging Level ) 이란? (2) | 2024.05.09 |
클라우드 기반 백엔드 기초 : 페어프로그래밍(2) (0) | 2024.04.29 |
클라우드 기반 백엔드 기초 : 웹 개요 및 MVC (0) | 2024.04.26 |
미니 프로젝트 회고 (0) | 2024.04.17 |