개요.
구루비 문법을 몇가지 써봤는데 정리하기 위함. 짬짬히 쌓아둘 예정.
그루비란?
- 동적 객체지향 프로그래밍 언어라고 한다.
- 동적 객체지향 프로그래밍은 소스코드에 액세스하지 않고도 개발 중 또는 배포 이후에 애플리케이션을 조정할수 있도록 해준다고 한다. (참고링크)
스프링부트 상에서 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)}
참고링크
'빌드툴' 카테고리의 다른 글
20210828 [gradle] The concept of conventions is deprecated. Use extensions instead (0) | 2021.08.28 |
---|---|
20201107 [gradle] intellij : gradle setting (수정 : 2021-06-09) (0) | 2020.11.09 |
20200908 [gradle] sourceSets (0) | 2020.09.08 |
20200825 [gradle] 현재 로컬환경의 gradle 버전 올리기. (0) | 2020.08.25 |