0

恭喜spring状态机,我昨天找到了,一直在尝试,特别是在STS中运行的turnstile示例。我发现构建 FSM 非常简单和直观。

因为 spring shell 在 STS 中不能很好地工作,所以我在参考文档中跟踪了从命令行运行示例的说明,

“java -jar spring-statemachine-samples-turnstile-1.0.0.BUILD-SNAPSHOT.jar”

,但运行时出错

“没有主要清单属性,在 spring-statemachine-samples-turnstile-1.0.0.BUILD-SNAPSHOT.jar 中”。

虽然甚至不是使用 gradle 的新手,但我尝试通过将此行添加到 jar 部分的 build.gradle 来解决此问题

“manifest.attributes['Main-Class'] = 'demo.turnstile.Application'”(它不处理我知道的各种子项目)但收到此错误“NoClassDefFoundError: org/springframework/shell/Bootstrap”。

如果可以从 gradle 运行示例,您能否将它们包含在参考文档中?我尝试使用运行样本

gradle 运行,但它没有与 shell 脚本交互。

4

2 回答 2

1

示例设计为作为可执行 jar 和 shell 运行,因此您可以进行交互,而无需每次更改都重新编译。您的错误表明您没有按照文档中的说明构建该示例 jar。

./gradlew clean build -x test

这将自动使用 spring boot 插件,该插件会将必要的 jar 清单头添加到 jar 元信息中,以使其成为真正的可执行 jar。基本上每个样本都是一个 Spring Boot 应用程序。

于 2015-06-13T22:37:57.847 回答
0

在Windows 环境中构建SM 示例项目:

  1. 打开命令提示符(windows key + r -->cmd-->Enter),将目录更改为项目根文件夹spring-statemachine-master(在提取的文件夹内)。

  2. 运行gradlew install以将所有 spring 依赖项复制到本地计算机。

  3. 运行gradlew clean build -x test以构建弹簧外壳罐。礼貌珍妮

理想情况下,这些步骤应该全部.jar构建,查看\build\libs相应示例项目的文件夹以获取 jar 文件。

像任何其他 java jar 文件一样运行java -jar [jar-file-name.jar](确保将目录更改为 jar 文件目录位置)。

我被卡住的另一件事是,如何给 SM 提供活动:就像这样sm event EVENT_NAME_AS_DEFINED_IN_CLASS参考 例如:sm event RINSE-> 到washer项目

于 2015-12-10T12:17:43.010 回答