티스토리 뷰
오늘은 젠킨스(Jenkins)에서 주로 사용하는 Spring Batch의 실행 커맨드 Script를 작성해볼까 합니다. 우선 아래와 같이 통짜 명령어를 먼저 살펴본 후 이것이 어떤 의미를 갖는지 살펴보겠습니다.
java -jar
-Dspring.profiles.active=batch
${BATCH_JAR_HOME}/batch-1.11.3.jar
--job.name=jenkinsRunnerJob
baseDate=${baseDate}
version=${VERSION}
1. java -jar
쉽게 말해 자바 명령어를 사용해 jar 파일을 실행한다는 옵션입니다.
2. -Dspring.profiles.active
자바 프로젝트는 application-${profile}.yaml 또는 .properties로 프로파일을 각 설정별로 지정할 수 있습니다. 위에서 사용한 프로파일의 이름은 'batch' 이고 이럴 때 동작하는 프로파일의 파일은 application-batch.yaml 파일이 될 수 있습니다.
3. ${BATCH_JAR_HOME}
BATCH_JAR_HOME 이라는 이름을 가진 변수가 위에서 선언되어 있는 경우 스크립트로 아래에서 사용이 가능하도록 부여합니다. 표현하는 방법은 어렵지 않습니다.
BATCH_JAR_HOME = "/home/ubuntu/batch"
baseDate='yyyy-mm-dd'
version='1.11.3'
// Java Source Mapping
// String BATCH_JAR_HOME = "/home/ubuntu/batch";
// String baseDate = LocalDate.parse(baseDate2, DateFormatter.ofPattern("yyyy-MM-dd"));
// String version = "1.11.3";
보통 대문자로 사용하는 값들은 환경 변수로 이미 지정이 되어 있는 내용들입니다. 위에서 사용하는 소문자 이름의 변수들 (baseDate, verision) 은 주로 Job Parameter 로 사용하는 내용입니다. 이 값들은 실행시킬 때마다 다른 파라미터를 넣어주어야하고 Job 소스 내의
@Value("#{jobParameters[baseDate]}") String baseDate
와 같이 사용할 때 주로 씁니다.
4. ${BATCH_JAR_HOME}/batch-1.11.3.jar
해당 jar 파일을 실행시키는 옵션입니다.
5. --job.name
Spring Batch에서 여러개의 잡이 있는 경우 특정 잡만 실행시키는 옵션입니다. --job.name=abcJob,defJob 로 옵션을 설정하면 두 개의 Job을 실행시키게 되고 이 옵션에 들어가는 잡의 이름은 @Bean(name = "abcJob")으로 선언이 되어 있는 경우 매핑되는 잡입니다.
'Server' 카테고리의 다른 글
[Java] 컴파일 후 실행하면 나는 "jps.track.ap.dependencies" 에러 해결 (2) | 2022.04.12 |
---|---|
RabbitMQ 의 동작방식과 적용법 (1) | 2022.04.09 |
Jenkins 글로벌 변수 설정하기 (1) | 2022.03.14 |
Ktor 프레임워크 공부하기 (1) | 2022.03.12 |
지금 봐도 괜찮은 배달의민족 도메인 설계 (1) | 2022.03.06 |
[Java] JPA Detached Entity passed to persist 에러 해결 로그 (2) | 2022.02.14 |