具有Spring批处理集成的种子堆栈



如何使用capsule.jar从seedstack中的命令行运行作业?有没有什么方法可以在jar中添加所有依赖项,从而避免设置类路径?有样品吗?

SeedStack Capsule集成的目的是构建一个可执行的über JAR,其中包含运行应用程序所需的所有依赖项。在这种情况下,您不需要配置类路径。

要构建胶囊,您必须使用SeedStack插件的package目标,使用模块的pom.xml中的插件部分:

<plugin>
<groupId>org.seedstack</groupId>
<artifactId>seedstack-maven-plugin</artifactId>
<version>2.7.1</version>
<executions>
<execution>
<id>build-capsule</id>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>

这将在模块target目录中构建胶囊JAR。然后,这个胶囊JAR可以作为标准的可执行JAR运行:

java [jvm-args] -jar capsule.jar [app-args]

在您的情况下,您将使用运行批处理作业

java -jar capsule.jar run-job --job someJob

此处提供相关文档:

  • 套餐目标
  • SeedStack Spring批量集成
  • 运行SeedStack应用程序

有没有办法在jar中添加所有依赖项,这样我们就可以避免设置类路径了?

您可以使用:创建一个uber jar

  • Spring Boot maven插件:https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html
  • Maven阴影插件:https://maven.apache.org/plugins/maven-shade-plugin/

有样品吗?

您可以在Spring Batch入门示例中找到一个示例:https://spring.io/guides/gs/batch-processing/(请参阅"构建可执行JAR"部分(

我创建了一个以pacakge为胶囊的示例sedstack cli项目,并使用以下命令执行了相同的操作:

java-jar my-cli-项目-封装.jar示例

它的工作非常完美。

我已在以下位置共享胶囊:https://github.com/smohane/sudeshrepo/tree/seed-samples

最新更新