Gradle
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Gradle은 컴파일, 검증, 의존성 해결, 테스트 실행, 소스 코드 생성, 패키징 및 게시 등 빌드 프로세스의 모든 단계를 지원하는 오픈 소스 빌드 자동화 시스템이다. 아파치 Groovy의 "G"를 따서 이름이 붙여졌으며, 관례 우선 방식을 통해 짧은 설정 파일로 빌드 단계를 설명할 수 있다. 플러그인을 사용하여 설정 및 태스크를 통합할 수 있으며, 안드로이드 스튜디오와 같은 제품에 번들로 포함되어 배포된다. Gradle은 Ant와 통합되어 Ant 빌드 파일을 스크립트로 사용할 수 있다.
더 읽어볼만한 페이지
- 컴파일 도구 - Libtool
Libtool은 다양한 유닉스 계열 운영 체제에서 정적 및 동적 라이브러리 생성을 관리하고, 운영 체제별 차이로 인한 소프트웨어 이식 문제를 해결하기 위해 GNU 빌드 시스템에서 사용되는 도구이다. - 컴파일 도구 - GNU 빌드 시스템
GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다. - 자바 개발 도구 - GNU 컴파일러 모음
GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다. - 자바 개발 도구 - J 샤프
J#은 마이크로소프트에서 개발한 .NET Framework 기반의 프로그래밍 언어로, 자바와 유사한 문법을 가지며 기존 자바 코드의 .NET 플랫폼 이전 및 .NET 언어와의 상호 운용성을 지원했으나 현재는 개발이 중단되었다. - 빌드 자동화 - GNU 빌드 시스템
GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다. - 빌드 자동화 - MSBuild
MSBuild는 마이크로소프트에서 개발한 빌드 자동화 도구로서, 프로젝트 파일에 기술된 대상을 실행하여 빌드 과정을 자동화하며, Team Foundation 빌드와 연동하여 팀 빌드 환경을 구성하는 데 사용된다.
| Gradle - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 이름 | Gradle |
| 종류 | 빌드 자동화 도구 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | Gradle 공식 웹사이트 |
| 개발 | |
| 개발자 | Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling |
| 최초 릴리스 | 2007년 |
| 안정화 버전 | 8.6 |
| 안정화 버전 출시일 | 2024년 2월 2일 |
| 프로그래밍 언어 | Java, Groovy, Kotlin |
2. 역사
Gradle은 2008년에 처음 출시되었으며, 2012년에 1.0 버전이 나왔다. 이후 지속적으로 발전하여 2023년에는 8.0 버전까지 출시되었다.[6][7]
2. 1. 이름의 유래
창립자이자 CEO인 한스 독터(Hans Dockter)는 원래 프로젝트 이름을 "Cradle"로 하려 했다고 말했다. 하지만 이름을 더 독창적이고 덜 "축소적인" 느낌으로 만들기 위해, Groovy의 "G"를 따서 "Gradle"이라는 이름을 선택했다.[5]2. 2. 주요 버전
| 버전 | 날짜 |
|---|---|
| 0.1 | 2008년 4월 21일[6] |
| 1.0 | 2012년 6월 12일[7] |
| 2.0 | 2014년 7월 1일 |
| 3.0 | 2016년 8월 15일 |
| 4.0 | 2017년 6월 14일 |
| 5.0 | 2018년 11월 26일 |
| 6.0 | 2019년 11월 8일 |
| 7.0 | 2021년 4월 9일 |
| 8.0 | 2023년 2월 13일 |
Gradle은 컴파일, 검증, 의존성 해결, 테스트 실행, 소스 코드 생성, 패키징 및 게시를 포함한 빌드 프로세스의 모든 단계를 지원한다.
안드로이드 스튜디오와 같은 제품에는 Gradle이 번들로 포함되어 제공되지만, 별도로 다운로드받을 수도 있다. Gradle 래퍼는 Gradle을 호출하는 권장 방법이다. 필요한 경우 선언된 버전의 Gradle을 미리 다운로드할 수 있다.
메이븐의 디렉터리 구조는 자바 소스와 리소스에 사용된다고 가정한다. 이 디렉터리들은 '''src/main/java''', '''src/main/resources''', '''src/test/java''', '''src/test/resources'''이다.
[1]
웹사이트
Gradle User Manual
https://docs.gradle.[...]
2020-11-14
3. 특징
Gradle은 관례 우선 접근 방식을 따르기 때문에 이러한 모든 빌드 단계를 짧은 설정 파일로 설명할 수 있다. 관례에는 프로젝트의 폴더 구조, 표준 태스크 및 해당 순서, 의존성 저장소가 포함된다. 그러나 필요한 경우 프로젝트 설정으로 모든 관례를 재정의할 수 있다.[8]
플러그인은 Gradle의 핵심 구성 요소이다. 플러그인을 사용하면 일련의 설정 및 태스크를 프로젝트에 통합할 수 있으며 중앙 플러그인 저장소 또는 단일 프로젝트용으로 사용자 지정 개발된 플러그인을 포함할 수 있다.
4. 배포
5. 자바 프로젝트 예제
'''build.gradle''' 파일의 내용은 다음과 같다.
apply plugin: 'java'
'''gradle build'''를 실행하면 다음과 같이 출력된다.
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Gradle은 컴파일, 검증, 의존성 해결, 테스트 실행, 소스 코드 생성, 패키징 및 게시를 포함한 빌드 프로세스의 모든 단계를 지원한다.[8] Gradle은 관례 우선 접근 방식을 따르기 때문에 이러한 모든 빌드 단계를 짧은 설정 파일로 설명할 수 있다.[8] 관례에는 프로젝트의 폴더 구조, 표준 태스크 및 해당 순서, 의존성 저장소가 포함된다.[8] 그러나 필요한 경우 프로젝트 설정으로 모든 관례를 재정의할 수 있다.[8]
Java 소스와 리소스에 Maven 디렉토리 구조가 사용되는 경우를 가정한다. Maven 디렉토리 구조는 각각 '''src/main/java''', '''src/main/resources''', '''src/test/java''', '''src/test/resources'''이다.
'''build.gradle''' 파일의 내용은 다음과 같다.
```groovy
plugins {
java
}
```
'''gradlew build'''를 실행하면 다음과 같이 출력된다.
```console
> gradlew build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
```
Java 플러그인은 모든 작업의 입출력 간의 종속 관계의 방향 비순환 그래프 내 작업으로 예상되는 Maven 라이프사이클을 다수 에뮬레이트한다. 이 간단한 경우 '''build''' 작업은 '''check''' 작업과 '''assemble''' 작업에 종속되어 있으며, 마찬가지로 '''check''' 작업은 '''test''' 작업에, '''assemble''' 작업은 '''jar''' 작업에 종속되어 있다.
Maven의 관례를 따르지 않는 프로젝트를 위해 Gradle은 디렉토리 구조를 설정할 수 있다. 다음은 소스 파일이 Maven의 관례인 '''src/main/java'''가 아닌 '''src/java'''에 포함된 프로젝트를 지원하기 위한 예이다.
'''build.gradle'''
```groovy
apply plugin: 'java'
sourceSets.main.java.srcDirs = ['src/java']
6. Ant 마이그레이션 예제
```
`gradle ant.target`를 실행하면 다음과 같은 결과를 얻을 수 있다.
```console
> gradle ant.target
:ant.target
[ant:echo] Running ant.target!
BUILD SUCCESSFUL
참조
[2]
웹사이트
Getting Started With Gradle
https://www.petrikai[...]
2016-03-26
[3]
웹사이트
What is Gradle?
https://docs.gradle.[...]
[4]
웹사이트
Our Story
https://gradle.com/o[...]
2021-10-15
[5]
웹사이트
Why is gradle called gradle?
https://discuss.grad[...]
2011-12-20
[6]
웹사이트
Index of /gradle
http://dist.codehaus[...]
2008-05-12
[7]
웹사이트
Gradle {{!}} Releases
https://gradle.org/r[...]
2021-10-15
[8]
웹사이트
Building Java & JVM projects
https://docs.gradle.[...]
2023-06-24
[9]
웹사이트
Gradle Wrapper Reference
https://docs.gradle.[...]
2024-03-04
[10]
웹사이트
Releases
https://gradle.org/r[...]
Gradle.org
2024-02-25
[11]
웹사이트
Getting Started With Gradle
http://www.petrikain[...]
2016-03-26
[12]
웹사이트
Introducing Incremental Build Support
https://blog.gradle.[...]
2019-04-30
[13]
웹사이트
Getting Started · Building Java Projects with Gradle
https://spring.io/gu[...]
2016-03-26
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com