개요.

구루비 문법을 몇가지 써봤는데 정리하기 위함. 짬짬히 쌓아둘 예정.

 

그루비란?

  • 동적 객체지향 프로그래밍 언어라고 한다.
  • 동적 객체지향 프로그래밍은 소스코드에 액세스하지 않고도 개발 중 또는 배포 이후에 애플리케이션을 조정할수 있도록 해준다고 한다. (참고링크)

스프링부트 상에서 build.gradle 을 작성하면서 쓰게된 몇가지 그루비 빌드 스크립트를 소개하려고 한다.

 

properties 객체이용

  • 해시테이블을 상속받고 있다.
  • 해당 객체를 이용하여 정적인 properties 파일을 읽어들여 변수로써 저장한다.
// props 는 아래의 형식을 띄게된다.
// props.{name} = {value}
def props = new Properties();

file('config.properties').withInputStream {
	props.load(it)
    println props.name
    println props.date
}

// config.properies 파일
name=pasudo123
date=2020-09-03
  • withInputStream
    • file 클래스 내의 메소드로서, 새로운 InputStream 을 만들고 클로저로 이를 전달한다.
    • 해당 메소드는 클로저가 반환된 이후에 스트림이 닫히도록 되어있다.

file.withWriter(closure)

  • 파일을 새롭게 쓴다.
def file = file "${projectDir}/src/main/resources/version.properties"
def versionProps = new Properties()
versionProps.setProperty("version", "${project.name}-${version}")
file.withWriter {versionProps.store(it, null)}

 

참고링크

Posted by doubler
,