0

スプリング ステート マシンおめでとうございます。私は昨日それを見つけて、特に STS で実行されている改札口の例を試してみました。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 を実行しましたが、シェル スクリプトとのやり取りはありませんでした。

4

2 に答える 2

1

サンプルは、実行可能な jar として実行し、シェルを使用して実行するように設計されているため、変更のたびに再コンパイルする必要なく対話できます。あなたのエラーは、ドキュメントに記載されているようにそのサンプル jar をビルドしなかったことを示しています。

./gradlew clean build -x test

これは、必要な jar マニフェスト ヘッダーを jar メタ情報に追加して真の実行可能 jar にするスプリング ブート プラグインを自動的に使用します。基本的にすべてのサンプルはスプリング ブート アプリです。

于 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して、Spring Shell jar を構築します。礼儀ジャンヌ

これらの手順は、理想的にはすべてのビルドを取得し、jar ファイルのそれぞれのサンプル プロジェクトのフォルダーを.jar調べる必要があります。\build\libs

他の Java jar ファイルと同じように実行しますjava -jar [jar-file-name.jar](ディレクトリを jar ファイル ディレクトリの場所に変更してください)。

もう1つ行き詰まったのは、SMにイベントを与える方法:こんな感じsm event EVENT_NAME_AS_DEFINED_IN_CLASSです。参照 例: sm event RINSE-->washerプロジェクトへ

于 2015-12-10T12:17:43.010 に答える