Groovy는 Java™ 플랫폼의 동적 스크립팅 언어(Python, Ruby 및 Perl)입니다. 대부분의 Java 코드는 구문상으로도 올바른 Groovy이므로 Java 프로그래머 사이에서는 Groovy가 많이 사용됩니다. Groovy는 정규식을 기본적으로 지원합니다.
스크립트의 첫 번째 행은 특성 오브젝트인 props를 작성합니다. 그런 다음 서버에서 보낸 파일에서 특성을 로드하려고 시도합니다(${PLUGIN_OUTPUT_PROPS} 변수로 지정). 파일을 로드할 수 있으면 props로 채웁니다. 그렇지 않으면 예외 처리합니다.
final def workDir = new File('.').canonicalFile
final def props = new Properties();
final def inputPropsFile = new File(args[0]);
try {
inputPropsStream = new FileInputStream(inputPropsFile);
props.load(inputPropsStream);
}
catch (IOException e) {
throw new RuntimeException(e);
}
스크립트에서 명령(파일 작성)을 실행하기 위해 단계 자체에서 정의한 특성을 사용합니다. 스크립트는 props에서 세 개의 특성을 검색하여 해당 로컬 변수를 작성합니다.
다음으로 스크립트는 fileName으로 지정한 이름을 사용하여 파일을 작성하고 overwrite 부울 변수를 테스트합니다. 동일한 이름의 파일이 있으며 overwrite가 false인 경우 스크립트가 종료 코드 1을 표시하며 종료(실패)됩니다. 종료 코드는 후처리 중에 검사할 수 있습니다.
그렇지 않으면 파일에 contents의 컨텐츠가 작성됩니다. 메시지는 출력 로그에 작성되며 종료 코드는 0(성공)으로 설정됩니다.
final def fileName = props['file']
final def overwrite = props['overwrite']?.toBoolean()
final def contents = props['contents']?:''
try {
def file = new File(fileName).canonicalFile
if (file.exists() && !overwrite) {
println "File $file already exists!"
System.exit 1
}
else {
file.write(contents)
println "Successfully ${overwrite?'replaced':'created'} file
$file with contents:"
println contents
}
}
catch (Exception e) {
println "Error creating file $file: ${e.message}"
System.exit(1)
}
System.exit(0)