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[]

centOS에서 tomcat 서버 설치하기

😢 이 페이지는 다음 주소로 변경될 예정입니다.

java 소스도 겨우 읽는데 tomcat 서버 설치하느라 고생했습니다. 상당히 단순한 절차인데도 개발자분이 올린 소스가 계속 에러가 나서 설치 문제인줄 알고 몇번이고 다시 설치를 시도했는데 다행히도(?) 폴더명이 문제였습니다. 지웠다가 재설치 하는 작업은 반복적으로 하면 서버가 지저분해지는 문제점(?)이 있어 싫어하는데 이번에 처음으로 해본 가상서버 호스팅은 간편하게 서버를 초기화 할 수 있어 엄청나게 편리했습니다. 이 내용은 centOS (64bit)를 기준으로 작성하였습니다.

1. 먼저 jdk를 설치해야 합니다. http://java.sun.com/javase/downloads/index.jsp 로 가서 해당 환경에 맞는 버전을 내려 받아 설치합니다.

cd /usr/tmp
wget http://download.oracle.com/otn-pub/java/jdk/7u1-b08/jdk-7u1-linux-x64.rpm
rpm -Uvh jdk-7u1-linux-x64.rpm

위와 같이 입력하면 JDK 설치는 완료 됩니다.

2. tomcat을 설치합니다. http://tomcat.apache.org/ 에 가서 사용하고자 할 버전에 맞춰 내려 받습니다.

wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.tar.gz
tar xvfpz apache-tomcat-7.0.22.tar.gz
mv apache-tomcat-7.0.22 /usr/local/tomcat

3. tomcat을 서비스로 등록해야합니다. 아래의 쉘 스크립트를 작성해서 /etc/rc.d/init.d/에 저장합니다.

#!/bin/sh
# Startup script for Tomcat
#
# chkconfig: 35 85 15
# description: apache tomcat 6.x
#
# processname: tomcat
#
# Source function library.
export JAVA_HOME=/usr/java/default
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
# See how we were called.
case "$1" in
  start)
  echo -n "Starting tomcat: "
  $CATALINA_HOME/bin/catalina.sh start
  echo
  ;;
  stop)
  echo -n "Shutting down tomcat: "
  $CATALINA_HOME/bin/catalina.sh stop
  echo
  ;;
  restart)
  $0 stop
  sleep 2
  $0 start
  ;;
  *)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac
exit 0

cat /etc/rc.d/init.d/tomcat #위 내용을 저장
chmod 755 /etc/rc.d/init.d/tomcat

4. tomcat을 서비스로 등록한 후 서비스 시작을 해줍니다.

chkconfig –add tomcat
service tomcat start

apache-tomcat으로 설치해줬기 떄문에 웹서버 설정은 별도로 변경할 필요가 없습니다. http://localhost:8080 으로 접속하면 tomcat 고양이가 야옹거리며 기다리고 있습니다.

설정하면서 기억할만한 내용들은 아래와 같습니다.

  • web manager, host manager 를 지원하는데 /usr/local/tomcat/tomcat-user.xml 에 계정을 추가해주면 사용할 수 있다.
  • tomcat은 WAS(web application server) 개념이다. 각각의 프로젝트가 /usr/local/tomcat/webapps 에 각 디렉토리로 저장이 되는데 LAPM에서 계정발급 해주고 FTP 접속 열어주고 하는 것처럼 하려면 webapps 쪽으로 vsftp를 수정하기 보다는 기존 계정 발급과 동일하게 생성해주고 webapps 폴더에 해당 계정 디렉토리 심볼릭 링크를 걸어주는 편이 한결 간편하고 쉽다.