CommandLineJobRunner
을 사용하여 스프링 배치에 정의 된 작업을 호출하는 방법을 모르겠다. 설명서가 충분하지 않습니다.커맨드 라인에서 스프링 배치 작업 실행
나는 Java 주석을 사용하여 Spring Batch에서 작업을 작성하기 위해 Spring Batch official guide을 따라 갔다. 나는 등, 작업, 단계의 설명
를 XML 설정 파일을 피하기 싶었 기 때문에 @EnableBatchProcessing
지금까지 내가 가진 :
- 나는 모든 넣어 한 구성 클래스 (
com.package.bla.bla.ClassContainingTheBatchConfiguration
은 아래 참조)@Bean
annotaion을 사용하여ItemReader
,ItemProcessor
,ItemWriter
,Job
및Step
(아래return jobs.get("nameOfTheJob")
)을 정의하는 항목입니다. main
메서드를 사용하는 클래스는SpringApplication.run(...)
이고, 주석은@ImportResource("classpath:META-INF/spring/applicationContext.xml")
으로 가져와 작업의 데이터를 처리 할 때 필요한 일부 빈을 가져옵니다. 메이븐 측면에서
나는 현재 어떤 플러그인을 사용하고 있습니다 : <addClasspath>true</addClasspath>
을 지정
maven-jar-plugin
및 태그<mainClass>
maven-assembly-plugin
의 주요 메소드를 포함하는 클래스는 내가 들어있는 고유의 실행jar
을 좋아하기 때문 종속성에있는 모든 것들, 나는 단계를 사용하여 항아리를 구축 할 수 있도록package
단계에서 항아리를 만들 수 있도록<phase>package</package>
을 사용하고 있습니다. 그는assembly
maven-compiler-plugin
나는 내가 구성하는 데 필요한 모든 일을 구성한 생각 나는 자바 1.7
를 사용하고 지정하지만 메이븐 BUILD SUCCESS
을 가진 후 나는 명령 줄에서 작업을 실행할 수 없습니다입니다 :
java -cp ./target/JAR_FILE_NAME.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.package.bla.bla.ClassContainingTheBatchConfiguration nameOfTheJob
이
com.package.bla.bla.ClassContainingTheBatchConfiguration
에 관한 인해
java.io.FileNotFoundException
에
IOException
을 던지고있다. 작업을 실행하기 위해 명령 행에서 매개 변수를 어떻게 지정해야합니까?
오 주'main' 메소드를 포함하고있는 클래스에'@ EnableAutoConfiguration' 주석이 달려 있다는 것을 잊어 버렸습니다. 실제로 나는 실행할 수있는 작업에 대해 일종의 제어를하고 싶습니다. 즉, 어떤 작업이'SpringApplication.run (...) '에 의해 실행되어야 하는지를 선택했습니다. 그래서 XML 구성 파일이 아닌 주석 클래스를 제공하는'CommandLineJobRunner'를 어떻게 든 사용할 수있을 것이라고 생각한 것입니다. – TPPZ
'@ EnableAutoConfiguration'으로 "spring.batch.jobName"(최대 RC3) 또는 "spring.batch.jobNames"(어제 이후)를 설정하여 실행할 작업을 나열 할 수 있습니다 (https://github.com 참조). /spring-projects/spring-boot/blob/master/docs/howto.md#execute-spring-batch-jobs-on-startup). 원한다면 main 메소드에서 그렇게 할 수는 있지만 커맨드 라인에서 전달하는 것이 더 나을 것입니다 (CLJR로하려고했던 것처럼). –
좋은 소식처럼 들리네! 그럼'spring.batch.jobName' 매개 변수를 어떻게 지정해야합니까? 나는'@ EnableAutoConfiguration' ('BatchAutoConfiguration'을 호출 중입니다) 근처에 뭔가를 설정할 수 있다고 생각했지만 그렇지 않습니다. Maven의 Spring Boot 부모 버전을'1.0.0.RC3'으로 설정했습니다. (나는 Spring에 익숙하지 않으며 문서와 소스 코드 브라우징으로 붙어있다.) – TPPZ