늘 겸손하게

Gradle 사용하기 본문

Programming Library & Tools/Gradle

Gradle 사용하기

besforyou999 2021. 7. 19. 17:12

 

Gradle 사용해보자

 

출처 : https://docs.gradle.org/current/userguide/getting_started.html


 

설치

 

Build에 Gradle Wrapper가 포함되어 있고 이미 존재하는 Gradle build를 실행시키고 싶을뿐이면 Gradle를 설치할 필요는 없습니다. Gradle Wrapper는 build root 하위 폴더인 gradlew 혹은 gradlew.bat 파일에서 확인 가능합니다. Gradle wrapper로 build하고 싶다면 사용하시는 시스템이 Gradle의 전제조건만 만족시키는지 확인하면 됩니다.

 

Gradle prerequisites - Gradle의 전제조건들

https://docs.gradle.org/current/userguide/installation.html#sec:prerequisites

 

Installing Gradle

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix-like systems (macOS, Linux, Cygwin, Solaris and FreeBSD). We deploy and maintain the versions available from SDKMAN!. Homebrew is "the missing package manag

docs.gradle.org

 

Android Studio는 Gradle를 같이 설치하므로 Android Studio가 존재하는 경우에는 따로 Gradle를 설치할 필요가 없습니다.

 

새로운 build를 생성하거나 이미 존재하는 build에 wrapper를 추가하기 위해서는 아래 순서에 따라 Gradle을 설치해야합니다.

 

https://docs.gradle.org/current/userguide/installation.html#installation

 

Installing Gradle

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix-like systems (macOS, Linux, Cygwin, Solaris and FreeBSD). We deploy and maintain the versions available from SDKMAN!. Homebrew is "the missing package manag

docs.gradle.org

 

물론 이외에도 Gradle을 설치하는 방법은 정말 많습니다.

 


Gradle 사용해보기

 

Gradle를 직접 사용해보는것이 Gradle을 배우는 가장 좋은 방법입니다. 그러니 Gradle를 설치했다면 아래의 튜토리얼을 해보세요

 

 

많은 튜토리얼 존재함

 

https://docs.gradle.org/current/userguide/getting_started.html

 

Getting Started

Everyone has to start somewhere and if you’re new to Gradle, this is where to begin.

docs.gradle.org

 

 

샘플 페이지에 더 많은 샘플을 볼 수 있습니다.

샘플 페이지 : https://docs.gradle.org/current/samples/index.html

 

Sample Index

Using toolchains: Use toolchains to configure the JVM to use for compilation and testing.

docs.gradle.org

 

 

 


Commnd line vs IDEs

 

Gradle은 커맨트 라인, IDE 둘 다 지원. 

 

Gradle은 다수의 메이저 IDE에서 지원되고 있고 Tooling API를 통해서 command line에서 실행 가능한 모든 것이 IDE에서도 실행 가능합니다.

 

Android Studio 와 IntelliJ IDEA 사용자들은 Gradle를 편집할때 Kotlin DSL build script로 상위 IDE 지원을 받는것을 고려해보세요

 


Executing Gradle builds

 

아무런 설명없이 Gradle build를 받았을때는 어떻게 하나요?

 

이런 경우에는 아래의 단계들을 따라해보세요

 

 

1. Gradle wrapper 가 존재하는지 확인하고 있으면 사용하세요

 

사용법 - https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:using_wrapper

 

 

The Gradle Wrapper

It is recommended to always execute a build with the Wrapper to ensure a reliable, controlled and standardized execution of the build. Using the Wrapper looks almost exactly like running the build with a Gradle installation. Depending on the operating syst

docs.gradle.org

 

main IDE들은 기본적으로 gradle wrapper 가 사용 가능하다. ( gradle wrapper 가 사용가능하다면 )

 

 

2. Discover the project structure - 프로젝트 구조를 확인하세요

    IDE를 이용하여 build를 불러오거나 command line에 gradle projects 를 입력하여 명령을 실행시킵니다.

목록에 root 프로젝트만 존재한다면 single-project build입니다. 다른 경우에는 multi-project build 입니다.

 

multi-project build - https://docs.gradle.org/current/userguide/intro_multi_project_builds.html#intro_multi_project_builds

 

Executing Multi-Project Builds

The command gradle test will execute the test task in any subprojects, relative to the current working directory, that have that task. If you run the command from the root project directory, you’ll run test in api, shared, services:shared and services:we

docs.gradle.org

 

 

3. Find out what tasks you can run - 실행가능한 task를 확인하세요

   

    IDE에 build를 불러왔다면 실행 가능한 task가 어떤것이 있는지 보여줄겁니다. Command line에서 gradle tasks를 실행 시키세요

 

 

4. Learn more about the tasks via gradle help --task <taskname> - 명령으로 task에 대해 더 배워보세요

 

    help task는 task에 대한 추가적인 정보를 출력해줍니다. 어떠한 프로젝트가 해당 task를 포함하는지, 어떤 옵션을 task가 지원하는지에 대한 정보 또한 출력해줍니다.

 

 

5. Run the task that you are interested in - 관심있는 task를 실행시키세요

    

    많은 convention-based build들은 Gradle의 lifecycle task들과 통합되어 있습니다. 그러니 구체적으로 build를 가지고 할 작업이 없다면 convention-based build들을 사용해보세요. 예로, 대부분의 build들은 clean, check, assemble, build task를 갖고 있습니다. 

 

command line에 gradle <taskname> 을 입력하여 task를 수행할 수 있습니다. 아래 링크에 command-line 명령에 대해 더 배울 수 있습니다.

https://docs.gradle.org/current/userguide/command_line_interface.html#command_line_interface

 

Command-Line Interface

You can customize many aspects about where build scripts, settings, caches, and so on through the options below. Learn more about customizing your build environment. -b, --build-file (deprecated) Specifies the build file. For example: gradle --build-file=f

docs.gradle.org

     IDE를 사용중이라면 문서를 확인하여 task를 실행시키는 방법을 확인해보세요.

 

 

Gradle build들은 주로 프로젝트 구조, task들의 표준 convention 들을 따릅니다. 그러므로 같은 타입의 빌드 - 예로 Java, Android, native builds - 에 익숙하다면 build의 file와 directory 구조가 비슷하다고 느낄겁니다. 많은 task와 프로젝트 속성들 또한 마찬가지입니다.

 

 

조금 더 구체적인 빌드 혹은 자세한 사용자 정의를 위해선 아래 링크

https://docs.gradle.org/current/userguide/build_environment.html#build_environment

 

Build Environment

Configuring an HTTP or HTTPS proxy (for downloading dependencies, for example) is done via standard JVM system properties. These properties can be set directly in the build script; for example, setting the HTTP proxy host would be done with System.setPrope

docs.gradle.org

 

 


 

Authoring Gradle builds

 

Gradle build를 생성하고 유지하는 방법을 배우는것은 시간이 매우 짧게 소요되는 하나의 프로세스입니다. 우리는 당신이 먼저 적절한 핵심 플러그인과 그것들의 convention들을 당신의 프로젝트에 추가하는것을 추천합니다. 그 후에 이 툴에 대해 더 배워가면서 점진적으로 사용자 정의를 추가하는것을 추천합니다.

 

Gradle를 마스터하는데 사용하면 유용한 단계들

 

1. 기본 튜토리얼을 해봐서 Gradle build 가 어떻게 생겼는지 확인해보세요. 특히 당신의 프로젝트와 같은 종류의 build를 확인해보세요 ( Java, native, Android, etc )

 

2. Gradle에 대해 알아야할 5 가지를 읽도록 하세요

 

3. Gradle build의 필수적인 요소들 : projects, tasks, and the file API 에 대해 배우세요

 

4. JVM 상에서 돌릴 소프트웨어를 만들고 있다면 아래 글을 꼭 확인

 

Building Java & JVM projects

https://docs.gradle.org/current/userguide/building_java_projects.html#building_java_projects

 

Building Java & JVM projects

How you package and potentially publish your Java project depends on what type of project it is. Libraries, applications, web applications and enterprise applications all have differing requirements. In this section, we will focus on the bare bones provide

docs.gradle.org

 

Testing in Java & JVM projects

https://docs.gradle.org/current/userguide/java_testing.html#java_testing

 

Testing in Java & JVM projects

If you are developing Java Modules, everything described in this chapter still applies and any of the supported test frameworks can be used. However, there are some things to consider depending on whether you need module information to be available, and mo

docs.gradle.org

 

5. Gradle과 함께 오는 core plugins들과 친숙해지세요. 해당 plugin들은 많은 기능을 제공하로 바로 사용가능합니다.

 

 

6. 유지가능한 build script를 작성하는 방법과 gradle 프로젝트를 잘 구성하는 방법에 대해 배우세요

 

https://docs.gradle.org/current/userguide/authoring_maintainable_build_scripts.html#authoring_maintainable_build_scripts

 

Best practices for authoring maintainable builds

It’s important for every build script developer to understand the different phases of the build lifecycle and their implications on performance and evaluation order of build logic. During the configuration phase the project and its domain objects should

docs.gradle.org

https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#organizing_gradle_projects

 

Organizing Gradle Projects

It’s very common that a project defines and executes different types of tests e.g. unit tests, integration tests, functional tests or smoke tests. Optimally, the test source code for each test type should be stored in dedicated source directories. Separa

docs.gradle.org

 

 

 


Integrating 3rd-party tools with Gradle

 

Gradle의 유연성은 다른 툴과 잘 작동한다는것을 뜻함. 링크 목록에 존재하는 툴과 잘 작동함

https://docs.gradle.org/current/userguide/third_party_integration.html#third_party_integration

 

Gradle & Third-party Tools

Gradle can be integrated with many different third-party tools such as IDEs and continuous integration platforms. Here we look at some of the more common ones as well as how to integrate your own tool with Gradle.

docs.gradle.org

 

통합 작업에는 두 가지 main mode 가 존재

 

1. A tool drives Gradle

 

빌드의 정보를 추출하고 실행시키는데 사용됨 - Tooling API를 통해

 

Tooling API

https://docs.gradle.org/current/userguide/third_party_integration.html#embedding

 

Gradle & Third-party Tools

Gradle can be integrated with many different third-party tools such as IDEs and continuous integration platforms. Here we look at some of the more common ones as well as how to integrate your own tool with Gradle.

docs.gradle.org

 

2.

Gradle이 툴 또는 3rd-party tool의 API를 위한 정보를 생성합니다. - 이 방식은 주로 플러그인 혹은 사용자 정의 task type을 통해 실행됨

 

 

 

Java 기반 API를 갖고 있는 툴들은 보통 직관적으로 통합가능하다. Gradle의 plugin portal에서 다양한 통합 결과물을 확인할 수 있다.

 

https://plugins.gradle.org/

 

Gradle - Plugins

Gradle plugin to manage Amazon Web Services 0.45 (19 July 2021)

plugins.gradle.org

 

 

 

 

 

으아아아 언제 다볼까

'Programming Library & Tools > Gradle' 카테고리의 다른 글

Gradle Wrapper 사용법  (0) 2021.07.20
Gradle 요약  (0) 2021.07.19