[JAVA] build.gradle, Gradle에 대해서…

TaesunPark·2022년 9월 16일
0

Gradle

목록 보기
2/2

글을 쓰게된 배경
JAVA를 사용해 안드로이드 앱, 서버 어플리케이션 개발을 했지만.. gradle은 단순히 프레임 워크를 구성하려면 파일들을 빌드해야하는 데 미리 그 파일들을 빌드해주는 문서로 이해하고 있었습니다. 하지만 이건 내 뇌피셜이였지 공식문서를 찾아보지도 않고 구글링으로 남들이 짠 gradle build file만 보고 작성하였습니다. 소프트웨어 장인이 되고자 하는 나는 이런 개발 습관에 매우 반성해 gradle을 정리해보고자 합니다. 혹여나 나처럼 방향성을 잡지 못하고 개발만 학생이 있으면 (소프트웨어 장인 : 프로페셔널리즘, 실용주의, 자부심) 이 책을 읽었으면 합니다. 서론은 여기까지 하고 Gradle에 대해 알아보겠습니다.

Gradle이란?

Java 진영에서 프로젝트를 관리할 때 빌드 도구를 이용합니다.

(공식 문서에 따르면) Gradle은 오픈 소스 빌드 자동화 도구입니다.

빌드 자동화
컴퓨터 소스 코드를 이진 코드로 컴파일하고, 바이너리 코드를 패키징하고, 자동화된 테스트를 실행하는 등 소프트웨어 빌드 및 관련 프로세스의 생성을 자동화하는 프로세스입니다. https://en.wikipedia.org/wiki/Build_automation

Gradle 특징

Gradle은 Task 단위로 실행 됩니다.

build.gradle

위 사진과 같이 build.gradle은 Groovy 언어로 스크립트가 작성된다.

Groovy는 JVM 상에서 실행되는 스크립트 언어로 Java와 비슷한 문법 구조를 가져 적응하기 편합니다.

  1. plugins

    Plugin은 Gradle Task의 집합 (특정 작업을 하기 위한 Task들을 모아놓음).

    plugins{
    	id 'java'
    }

    이 java plugin을 설치하면 다음 아래와 같은 Task 들이 생성되는 걸 볼 수 있습니다.

  1. repositories

→ mavenCentral()은 기본 maven repository를 사용하겠다는 의미입니다.

mavenCentral()뿐만 아니라, google(), jcenter()도 존재함. google()은 보통 안드로이드에서 사용됩니다.

  1. dependencies

→ 외부 라이브러리 사용을 위한 의존성 설정

다음 아래는 부터 gradle 공식문서의 java_plugin에 대한 대용입니다. https://docs.gradle.org/current/userguide/java_plugin.html 와 같습니다.

Java Plugin

plugins{
	id 'java'
}

자바 플러그인을 사용할 시 다음과 같은 테스크들을 추가합니다.

compileJava, processResources, classes, compileTestJava

, processTestResources, testClasses, jar, javadoc, test, clean, cleanTaskName

각 테스크들에 대한 내용은 https://docs.gradle.org/current/userguide/java_plugin.html

에서 자세히 확인할 수 있습니다.

프로젝트 레이아웃

src디렉토리는 프로젝트 내에서 사용되는 프로그램 (프로덕션) 디렉토리 입니다.

src/main/java프로덕션 자바 소스.

src/main/resourcesXML 및 속성 파일과 같은 프로덕션 리소스.

src/test/java자바 소스를 테스트합니다.

src/test/resources리소스를 테스트합니다.

src/*sourceSet*/java*sourceSet* 이라는 소스 세트의 Java 소스입니다 .

src/*sourceSet*/resources*sourceSet* 이라는 소스 세트에 대한 리소스입니다

Gradle, Maven 폴더 구조

Gradle은 Maven의 폴더 구조를 그대로 따르고 있습니다.

Gradle을 얕게 정리해보았습니다. 추후에 Gradle에 대해 자세히 공부하고 따로 글을 올리겠습니다.

출처

gradle 공식 문서, gradle 특징 이미지: https://docs.gradle.org/current/userguide/what_is_gradle.html

plugins : https://kotlinworld.com/323

java plugin : https://docs.gradle.org/current/userguide/java_plugin.html

0개의 댓글