JAVA - Gradle

choko's avatar
Jun 29, 2024
JAVA - Gradle
 

Gradle

  • Compile, Test, Packaging, Deploy/Run 등의 CI/CD 작업들을 자동화시켜주는 오픈소스 빌드 도구이다.
  • Gradle Wrapper
    • 미리 지정된 버전의 Gradle을 호출하도록 하는 스크립트
    • Gradle 빌드를 위해서는 알맞은 Gradle 버전이 설치되어 있어야 하는데, 매번 알맞은 버전의 gradle을 설치하는것이 비효율적이기 때문에 프로젝트마다 내장 gradle을 넣어준다.
    • gradle/wrapper 디렉토리 아래에 존재한다.
 
  • Gradle 명령어
    • gradle init
      • gradle 프로젝트를 초기 구성할 때 사용
      • 다음 폴더 구조가 생성된다.
        • ├── app │ ├── build.gradle │ └── src │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ └── App.java │ │ └── resources │ └── test │ ├── java │ │ └── demo │ │ └── AppTest.java │ └── resources ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle
    • ./gradlew run
      • gradle을 통해 애플리케이션 실행
    • ./gradlew build
      • gradle을 통해 애플리케이션 빌드
 
  • Gradle 구조
    • gradle
      • wrapper 디렉토리가 포함됨
    • gradlew(mac), gradlew.bat(window)
      • gradle wrapper을 실행하는 스크립트 파일
    • settings.gradle
      • build name, subproject 등 정의
        • 이 경우 프로젝트 이름이 ftgo, 서브프로젝트가 common-swagger, ftgo-test-util이다.
          • rootProject.name = 'ftgo' include "common-swagger" include "ftgo-test-util"
    • build.gradle
      • 프로젝트의 빌드 스크립트로, 프로젝트에서 필요한 작업을 수행하기 위해 모든 매서드, 프로퍼티를 모아놓은 슈퍼 객체이다.
      • Gradle Task를 통해 java application을 빌드하면, plugins, repositories, dependencies, application 등의 매서드들을 수행시킨다.
        • notion image
           
 
  • Gradle 명령어
    • gradle init
      • gradle 프로젝트를 초기 구성할 때 사용
      • 다음 폴더 구조가 생성된다.
        • ├── app │ ├── build.gradle │ └── src │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ └── App.java │ │ └── resources │ └── test │ ├── java │ │ └── demo │ │ └── AppTest.java │ └── resources ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle
        • gradle
          • wrapper 디렉토리가 포함됨
        • gradlew(mac), gradlew.bat(window)
          • gradle wrapper을 실행하는 스크립트 파일
        • settings.gradle
          • build name, subproject 등 정의
            • 이 경우 프로젝트 이름이 ftgo, 서브프로젝트가 common-swagger, ftgo-test-util이다.
              • rootProject.name = 'ftgo' include "common-swagger" include "ftgo-test-util"
        • build.gradle
          • 프로젝트의 빌드 스크립트로, 프로젝트에서 필요한 작업을 수행하기 위해 모든 매서드, 프로퍼티를 모아놓은 슈퍼 객체이다.
          • Gradle Task를 통해 java application을 빌드하면, plugins, repositories, dependencies, application 등의 매서드들을 수행시킨다.
            • notion image
               
               
           
           
           
ref by :
Share article

Tom의 TIL 정리방