Gradle로 Java 프로젝트 시작하기 요약

spring의 gradle로 프로젝트 시작하기를 따라하며 정리한 글이다.

먼저 brew로 java와 의존성 및 빌드 관리/자동화 도구인 gradle을 설치한다.

$ brew tap caskroom/cask
$ brew install brew-cask
$ brew cask install java
$ brew install gradle

문제없이 설치되었다면 버전 정보를 출력한다.

$ gradle -v

gradle로 프로젝트를 초기화한다.

$ gradle init

초기화하면 기본적으로 gradle wrapper를 생성해주는데 이 스크립트는 gradle이 없는 환경에서도 gradle을 사용할 수 있도록 돕는 스크립트다.

예제 클래스를 먼저 작성한다.

$ mkdir -p src/main/java/hello
// 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());
  }
}
// src/main/java/hello/Greeter.java

package hello;

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

빌드와 관련한 모든 설정은 build.gradle에 담겨 있다. 빌드를 위해 다음 내용을 build.gradle에 추가한다.

apply plugin: 'java'

그리고 빌드를 하면 build 디렉토리를 생성하고 빌드를 진행한다.

$ gradle build

아래 내용을 추가해서 어플리케이션을 직접 구동할 수 있다.

apply plugin: 'application'
mainClassName = 'hello.HelloWorld'

gradle을 설치한 환경에서는 gradle을 사용해도 되겠지만 다음과 같이 앞에서 생성한 wrapper를 사용해서 구동할 수 있다.

$ ./gradlew run

다음은 튜토리얼에서 최종적으로 작성하게 되는 gradle 파일이다.

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

// tag::repositories[]
// 서드파티 라이브러리의 소스 출처를 추가한다
repositories {
    mavenCentral()
}
// end::repositories[]

// tag::jar[]
// 빌드에서 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"
}
// end::dependencies[]

// tag::wrapper[]
// wrapper로 설치할 gradle version을 정한다
task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}
// end::wrapper[]
김용균

안녕하세요, 김용균입니다. 문제를 해결하기 위해 작고 단단한 코드를 작성하는 일을 합니다. 웹의 자유로운 접근성을 좋아합니다. 프로그래밍 언어, 소프트웨어 아키텍처, 커뮤니티에 관심이 많습니다.

이 글 공유하기

이 글이 유익했다면 주변에도 알려주세요!

페이스북으로 공유하기트위터로 공유하기링크드인으로 공유하기Email 보내기

주제별 목록

같은 주제의 다른 글을 읽어보고 싶다면 아래 링크를 확인하세요.

April 04, 2016

터미널에서 GitHub 이슈 관리하기 ghi

조금은 생산적인 도구를 소개하는 것도 좋을 것 같아 GitHub 서비스를 위한 도구를 소개한다. GitHub API를 이용한 ghi가 꽤 많은데 API v3에 맞춰 현재까지 관리되고 있는 도구로 ghi 가 있다. Github 리포지터리에 등록된 i…

April 02, 2016

터미널에서 백그라운드 작업 관리하기 job-control

bash나 zsh에서는 작업 제어(job control)을 기본적으로 제공하고 있다. 현재 동작하고 있는 프로그램을 백그라운드로 보내거나 백그라운드에 있는 프로그램을 다시 꺼내서 사용하는 것도 가능하다. 평소에 다음과 같이, 끝에 을 붙여 명령어를…