私のクラウド ストリーム アプリケーションでは、spring-cloud-starter-stream-processor-tasklaunchrequest-transform
スターター アプリをタスク プロセッサとして使用しました。
スターターはローカルでビルドされ、ローカルの Maven リポジトリにインストールされます。
ローカルの Dataflow サーバーと DF シェルを起動し、アプリを登録してストリームを作成してデプロイするために使用するコマンドは次のとおりです。
-
ローカル Maven にタスク ランチャーアプリをインストールします。
mvn clean install
- タスク プロセッサ
アプリをローカル Maven にインストールします。
mvn clean install
ローカル Maven にタスク アプリをインストールします。
mvn clean install
Build Dataflow Server Local -
mvn clean package
(remoteRepo の場所をエンタープライズ Maven リポジトリに変更)DF サーバーをローカルで起動 -
mvn spring-boot:run
データフロー シェルのビルド -
mvn clean package
DFシェルを起動 -
mvn spring-boot:run
すぐに使えるスターター アプリを Rabbit バインディングでインポートする
stream-applications-rabbit-maven
アプリを登録する -
app register --name task-processor --type processor --uri maven://org.springframework.cloud.stream.app:spring-cloud-starter-stream-processor-tasklaunchrequest-transform:jar:1.1.0.BUILD-SNAPSHOT
app register --name task-launcher-local --type sink --uri maven://org.springframework.cloud.stream.app:task-launcher-local-sink-rabbit:jar:1.0.4.RELEASE
ストリームを作成 -
stream create foo --definition "rabbit --rabbit.queues=cloud-stream-source --rabbit.requeue=true --spring.rabbitmq.host=localhost --spring.rabbitmq.port=5672 --spring.cloud.stream.bindings.output.contentType='text/plain' | task-processor --uri=maven://com.example:thumbnail-generator:0.0.1-SNAPSHOT | task-launcher-local" --deploy
ただし、タスク プロセッサの起動に失敗したため、ストリームのデプロイは失敗しています。プロセッサ ログに記録されるエラーは次のとおりです。
/Users/abc/.m2/repository/org/springframework/cloud/stream/app/spring-cloud-starter-stream-processor-tasklaunchrequest-transform/1.1.0.BUILD-SNAPSHOT/spring- にメインのマニフェスト属性はありませんcloud-starter-stream-processor-tasklaunchrequest-transform-1.1.0.BUILD-SNAPSHOT.jar
今、提起する2つのポイントがあります:
- ログに記載されている Maven リポジトリの場所は、MacOS のデフォルトの場所であり、ローカルの Maven 構成 (/Users/abc/myrepo/.m2/repository) の 1 つのセットアップではありません。
- このエラーは、スターター アプリのビルドされた jar ファイルに対して有効です -
spring-cloud-starter-stream-processor-tasklaunchrequest-transform
。そして、ストリーム アプリで実行可能にして使用できるようにするためにカスタマイズが必要な場合、それは私を混乱させます。
スターター アプリを実行可能なスプリング ブート アプリに変更して、そのバージョンをローカル リポジトリにインストールしようとしましたが、アプリケーションが正しいローカル リポジトリ (既定のリポジトリではなく) を参照しない限り、使用できません。
これはアプリの問題であり、ローカルの maven 設定が表示されないため、デフォルト値のままになっていると思います。
どんな入力も役に立ちます。