Gradle은 무엇입니까?

3872 단어 자바gradle
자바 빌드 주위에 관심이 있었기 때문에 그때의 메모.

Gradle이란?



java의 빌드 툴로 jar 파일(java의 바이트 코드 파일이나 이미지를 zip 파일 형식으로 하나로 정리한 것)
에 빌드를 해줍니다.
maven과 달리 구성 파일은 grovy라는 언어로 작성됩니다.

또한 gradle을 매번 설치하지 않도록 gradle wrapper라는 것을 만들고,
이를 배포하면 gradle을 설치하지 않은 환경에서도 gradle을 사용할 수 있습니다.

Gradle 초기화



간단한 gradle 프로젝트를 만듭니다.
gradle init

이제 다양한 파일을 만들 수 있습니다. 구체적으로 다음과 같은 느낌
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle


의존성 해결



gradle은 java 외부의 패키지를 관리하여 자신의 프로젝트에서 해당 패키지를 사용할 수 있도록 해줍니다.
dependencies {
    implemention("パッケージ名")
}

작업



gradle의 작업은 공식에서 인용하면 빌드를 수행하는 세밀한 작업입니다.

내장 작업



이 태스크는 gradle 프로젝트가 생성된 시점에 여러 가지로 만들어집니다.
예를 들어 테스트, 빌드, 실행 등입니다.

이들은
gradle tasks

에서 목록을 볼 수 있습니다.

작업 정의



이 작업은 직접 정의할 수 있으므로 간단한 작업을 정의해 봅시다.
task hello {
    println("hello")
}

실행해 보자.
gradle hello

#以下のが表示されるはず
#hello
#:hello UP-TO-DATE

이런 식으로 작업을 만들어 내부에서 플러그인 설정이나 특정 작업만을 묶어 둘 수 있습니다.

작업을 작업으로 구성



태스크는 자신이 실행해야 할 태스크를 액션이라는 단위로 인식하고, 그것을 배열로서 순차적으로 실행해 갑니다.

액션은
doFirst : 맨 위에 추가
doLast: 끝에 추가

같은 형태로 추가합니다.
task hello{
    hello.doFirst {
        println "hello1"
        println "hello2"
    }
    hello.doLast {
        println "hello3"
        println "hello4"
    }
}

이렇게 하면
gradle hello

결과는
:hello
hello1
hello2
hello3
hello4

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

된다.

이러한 방식으로 실행 순서를 제어하여 처리 순서를 사용자 정의할 수 있습니다.

gradle tips



지금까지 조금씩 gradle의 사용법을 접해 왔습니다만, 이번에는 각 태스크가 빨라지는 설정이나 분석을 위한 편리한 기능을 보고 싶습니다.

병렬화



grale은 기본적으로 태스크를 하나씩 밖에 실행하지 않습니다. 하지만,
병렬 실행을 강제하는 설정이 있습니다.
덧붙여 이것은 완전히 독립적인 태스크를 병렬 실행하므로, 종속성이 있는 것에 관해서는 지금까지대로 순차적으로 실행됩니다.

gradle.properties에 다음을 추가합니다.
org.gradle.parallel=true

프로파일링



gradle에는 태스크 실행시 얼마나 걸렸는지, 병렬 실행했는지 등을 프로파일링하여 시각화해 주는 기능이 있습니다.
태스크를 실행할 때 --scan를 붙이면 실행 후 CLI에 URL이 표시되고 거기에서 확인할 수 있습니다.

다만, 이것에는 gradle로 메일 주소의 등록등이 필요하기 때문에, 정보 관리적인 부분을 생각할 필요가 있습니다.



이 프로파일 링은 상당히 편리하며 테스트의 무거운 부분이나 서제스트 등 빌드의 효율화에 중요한 정보를 얻을 수 있습니다.

참고





마지막으로



gradle은 설정 파일이, 독자 언어이거나 합니다만, 그 언어에도 익숙해져 버리면 설정은 읽기 쉽고,
태스크의 설정도 세세하게 할 수 있는 인상입니다.

또, 빌드시의 프로파일링 등, 검증과 개선의 어제도 갖추어져 있는 것도 좋습니다.

그럼 좋은 gradle 생활

좋은 웹페이지 즐겨찾기