The Base Plugin

appti·2021년 11월 4일
0

Gradle

목록 보기
2/5

해당 내용은 Gradle 공식 홈페이지의 내용을 정리한 내용입니다.

The Base Plugin

기본 플러그인은 대부분의 빌드에 공통적인 몇 가지 작업과 규칙을 제공하고 빌드 실행 방식의 일관성을 촉진하는 구조를 빌드에 추가합니다.
가장 중요한 기능은 다른 플러그인 및 빌드 작성자가 제공하는 구체적인 작업을 위한 사전 준비(act as an umbrella)인 태스크 수명 주기(lifecycle tasks)입니다.

Usage

기본 플러그인을 적용시키려면 다음과 같이 진행할 수 있습니다.

//build.gradle

plugins {
    id 'base'
}

Task

  • clean - Delete

    • 빌드 디렉토리와 그 안에 있는 모든 것 - Project.getBuildDir() 프로젝트 속성으로 지정된 경로를 삭제합니다.
  • check - lifecycle task

    • 플러그인과 빌드 작성자는 run test와 같은 검증(verification) 태스크를 check.dependsOn(task)와 같은 방식으로 태스크 수명 주기에 추가해야 합니다.
  • assemble - lifecycle task

    • 플러그인 및 빌드 작성자는 배포 및 기타 소비 가능한 Artifact를 생성하는 작업을 이 태스크 수명 주기에 추가해야 합니다.
  • build - lifecycle task

    • 모든 테스트 실행하고, 프로덕션 Artifact 생성 및 문서 생성을 포함하여 모든 것을 빌드 하기 위한 태스크입니다.
    • 일반적으로 assemble이나 check 태스크를 사용하는 것이 더 적합하기 때문에 build 태스크에 직접 작업하는 경우는 거의 없을 것입니다.
    • Depends on : check, assemble
  • buildConfiguration - task rule

    • 명명된 구성(Configuration)에 연결된 Artifact를 Assemble 합니다.
    • 예를 들어, buildArchives 태스크의 경우 archives 구성에 포함된 모든 Artifact를 생성하는데 필요한 태스크를 모두 실행합니다.

Dependency management

기본 플러그인은 종속성 구성을 추가하지는 않지만, 다음 구성을 추가합니다.

  • default
    • 소비자 프로젝트(consumer projects)에서 사용하는 대체 구성입니다.
    • 프로젝트 A에 대한 프로젝트 종속성이 있는 프로젝트 B가 있다고 가정하겠습니다.
      Gradle은 몇 가지 내부 로직을 사용하여 프로젝트 A의 Artifact 및 종속성 중 어느 것이 프로젝트 B의 지정된 구성에 추가되는지를 결정합니다.
      만약 다른 요소(factors)가 적용되지 않는 경우 Gradle은 프로젝트 A의 default 구성(configuration)에 있는 모든 것을 재활용합니다.
    • 새 빌드와 플러그인은 default 구성을 사용해서는 안됩니다.
      이 항목은 이전 버전과의 호환성 때문에 남아 있습니다.
  • archives
    • 프로젝트의 프로덕션 Artifact에 대한 표준 구성입니다.

Assemble 태스크는 archives 구성에 첨부된 모든 Artifact를 생성합니다.

Contributed extensions

기본 플러그인 프로젝트에 기본 확장(base extension)을 추가합니다.
이를 통해 전용 DSL 블록 내에서 다음과 같은 속성을 구성할 수 있습니다.

  • archivesName - 기본 : $project.name
  • distsDirectory - 기본 : $buildDir/distributions
    • 비 JAR과 같은 배포 아카이브가 생성되는 디렉토리의 기본 이름입니다.
  • libsDirectory - 기본 : $buildDir/libs
    • 라이브러리 archives, 즉 JAR가 생성되는 디렉토리의 기본 이름입니다.

기본 플러그인은 AbstractArchiveTask를 확장하는 모든 태스크에서 다음 속성(properties)에 대한 기본값을 제공합니다.

  • destinationDirectory
    • JAR가 아닌 archives의 경우 기본값은 distsDirectory이고 JAR 및 WAR와 같은 JAR의 파생 프로덕션의 경우 libsDirectory입니다.
  • archiveVersion
    • 기본값은 $proejct.version 이며 프로젝트 버전이 없는 경우 unspecified 입니다.
  • archiveBaseName
    • 기본값은 $archivesBaseName 입니다.

Conventions (deprecated)

기본 플러그인은 ZIP, TARK 및 JAR와 같은 archives 생성과 관련된 규칙을 추가할 수 있습니다.
Conventions는 더 이상 사용되지 않으며 Contributed extensions로 대체되었습니다.

profile
안녕하세요

0개의 댓글