Grale로 자바 프로젝트 빌드하기

프로젝트 셋팅

디렉터리 구조

mkdir -p src/main/java/hello를 통해서 기본 디렉터리 생성

HelloWorld.java

package hello;

public class HelloWorld {
  public static void main(String[] args) {
  Greeter greeter = new Greeter();
  System.out.println(greeter.sayHello());
  }
}

Greeter.java

package hello;

public class Greeter {
  public String sayHello() {
  return "Hello world!";
  }
}

그레이들 설치

  • SDKMAN
  • Homebrew (brew install gradle)
    중 택하여 그레이들을 로컬 피씨에 설치하거나 https://www.gradle.org/downloads 에서 직접 다운로드

그레이들 기능 확인

gradle tasks

그레이들로 자바 빌드하기

build.gradle 에 java 플러그인 추가

...
apply plugin: 'java'
...

터미널에 그레이들 빌드 명령어 입력

gradle build

빌드가 성공적으로 종료시 build아래 다음과 같은 폴더들이 생성된 것을 확인할 수 있음.

  • classes : 컴파일된 .class 파일

  • reports : 빌드에 의해 생성된 리포트들 (ex>테스트 결과 보고서)

  • libs : 프로젝트 라이브러리들 모음. (ex>jar/war)

의존성 선언

  • reositories에 라이브러리를 가져올 위치를 지정
  • 의존성 타입
    • compile : compile시에 필요한 dependency를 설정한다.
    • testCompile : test 시에 필요한 dependency를 설정한다.
    • providedCompile : compile시에는 필요하지만, 배포시에는 제외될 dependency를 설정한다. (war plugin이 설정된 경우에만 사용 가능하다)
    • providedRuntime : runtime시에만 필요하고, 실행환경에서 제공되는 dependency를 설정한다. (war plugin이 설정된 경우에만 사용 가능하다)
  • jar 영역에는 빌드될 jar파일의 정보를 기입 ex>gs-gradle-0.1.0.jar.

그레이들로 실행가능하도록 만들기

application 플러그인을 추가하고 메인클래스를 지정 gradle run으로 실행

  • war파일로 빌드하고 싶다면 war plugin 추가
  • spring boot 사용중이고 실행 가능한 jar파일로 빌드하고 싶다면 spring-boot-gradle-plugin 추가
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

// tag::repositories[]
repositories {
    mavenCentral()
}
// end::repositories[]

// tag::jar[]
jar {
    baseName = 'gs-gradle'
    version =  '0.1.0'
}
// end::jar[]

// tag::dependencies[]
sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "joda-time:joda-time:2.2"
    testCompile "junit:junit:4.12"
}
// end::dependencies[]

// tag::wrapper[]
// end::wrapper[]

Gradle Wrapper로 빌드하기

//래퍼 파일 생성
$ gradle wrapper --gradle-version 2.13

//래퍼로 빌드
./gradlew build

출처 : https://spring.io/guides/gs/gradle/

'공식메뉴얼 > spring.io' 카테고리의 다른 글

Building Java Projects with Maven  (0) 2020.11.15
Consuming a RESTful Web Service  (0) 2020.10.31
Scheduling Tasks  (0) 2020.09.06
Building a RESTful Web Service  (0) 2020.09.06

+ Recent posts