spring - 从命令行运行 Spring Batch 作业

标签 spring maven maven-plugin spring-batch

我不知道如何使用 CommandLineJobRunner 调用 Spring Batch 中定义的作业,文档细节对我来说还不够。

我关注了 Spring Batch official guide使用 Java 注释在 Spring Batch 中编写作业,例如@EnableBatchProcessing因为我想避免使用 XML 配置文件来描述工作、步骤等。

到目前为止,我有:

  • 一个配置类( com.package.bla.bla.ClassContainingTheBatchConfiguration 见下文),我已经把所有定义 ItemReader 的东西都放在这里了, ItemProcessor , ItemWriter , Job , 和 Step (与 return jobs.get("nameOfTheJob") 见下文)使用 @Bean注释。
  • 一个带有 main 的类方法与 SpringApplication.run(...)和和注释 @ImportResource("classpath:META-INF/spring/applicationContext.xml")在处理作业中的数据时导入一些我需要的 bean。

  • 在 Maven 方面,我目前正在使用一些插件:
  • maven-jar-plugin指定 <addClasspath>true</addClasspath>以及标签中包含 main 方法的类 <mainClass>
  • maven-assembly-plugin因为我想要一个独特的可执行文件 jar包含依赖项中的所有内容,我正在使用 <phase>package</package>能够在 package 中构建 jar 阶段,我也在用<goal>single</goal>能够使用 assembly 正确构建 jar
  • maven-compiler-plugin指定我使用的是 Java 1.7

  • 我想我已经配置了所有需要配置的东西,但是在拥有 Maven 之后 BUILD SUCCESS我无法从命令行运行作业:
    java -cp ./target/JAR_FILE_NAME.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.package.bla.bla.ClassContainingTheBatchConfiguration nameOfTheJob
    

    正在抛IOException由于 java.io.FileNotFoundException关于 com.package.bla.bla.ClassContainingTheBatchConfiguration .我应该如何在命令行中指定参数才能执行作业?

    最佳答案

    如果您已经在使用 SpringApplication从 Spring Boot 开始,为什么不完成工作并使用 @EnableAutoConfiguration以及 Maven 插件(参见例如 this guide )?这样你就可以很快地得到一些东西,而且你以后可以随时添加自己的功能。

    关于spring - 从命令行运行 Spring Batch 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993776/

    相关文章:

    Spring重新加载属性而不重启TOMCAT

    java - Spring RestTemplate - 指定 Jackson View

    java - 如何将 Nexus maven 存储库索引 (nexus-maven-repository-index) 移动到其他目录(不是临时目录)

    linux - mvn 依赖 :get -Ddest parameter in Linux

    java - 如何从 Maven 存储库中删除 jetty jar

    maven - IntelliJ、Maven、Flexmojos - 无法生成 Flex 编译器配置文件

    java - OAuth2 客户端凭据通过 Spring Boot Keycloak 集成流

    java - 在 ServletRequest 中获取客户端 IP 时遇到问题

    java - 如何以编程方式修改 build.gradle 文件?

    java - 如何使用 jaxb2-maven-plugin 2.3.1 生成接口(interface)(SEI,服务端点接口(interface))