2016-03-22 3 views
4

私はWildy Swarmプロジェクトでfat-jar JavaEEアプリケーションを作成することに興味がありましたが、変更されたクラスをIDEから「ホットデプロイ」する方法を理解できません。IDEでWildfly Swarmを使って再起動せずに開発する - 「ホットデプロイ」はどこかで?

コード行またはJSF xhtmlファイルを変更するときは、現在、アプリケーション全体を再起動する必要があります(7秒程度かかります)。それはあまり生産的ではありません。

スプリングブートには、少なくともいくつかのクラスをリロードするspring-boot-devtoolsが用意されています。 従来のアプリケーションサーバーはホットデプロイメントプロトコルを提供しています。 Wildfly Swarmに類似したものはありますか? JRebelはここで助けますか?

+1

JRebelがお手伝いします。 –

答えて

4

独自のMainクラスまたはorg.wildfly.swarm.Swarmクラスを呼び出すことで、お気に入りのIDEのソースから直接JavaアプリケーションとしてWildFly Swarmを実行できます。これにより、パッケージ化のステップが節約されます。

いつものように、ホット・クラス・リロードの場合、JVMは非構造的な変更をリロードすることができますが、クラス・シグネチャを「中断する」たびに再起動する必要があります。私はそれを試していないが、非常に可能性が高いJRebelがそこに助けることができるかもしれない。

Eclipseユーザーの方は、wildfly-hiveを試してみてください。それはswarmアプリケーションを自動検出しようとし、一致するサーバをサーバビューに作成しようとします。 Eclipseの標準サーバと同様に、start/debug/stopをクリックするだけで済みます。

+0

Eclipseプロジェクトでwildfly swarmを使ってorg.wildfly.swarm.Swarmを使ってみました。そしてそれは動作します!しかし問題は、生成されたwarファイルが異なることです。たとえば、私のプロジェクト名はTest.warですが、デバッグのデプロイ時には、507ac020-cc98-4956-9c88-418869842dcf.warのようなものが作成されます...どうしてもBeanの検索が失敗するということです。 –

-3

私はIntelliJ Ideaを使用することをお勧めします。そのJavaEEプロジェクトテンプレートは、ほとんどのアプリケーションサーバーでホットデプロイメントを行います。

+1

Wildfly Swarmはアプリケーションサーバーではありません。これはWildflyライブラリをファットジャーに束ねるだけです。私が知る限り、IDEが使用するホットデプロイメントポートは開かれません(ただし、そうすることもできますが、これは私が知りたいことです)。 – lathspell

1

私の解決策は、IntelliJ IDEAを使用し、自分のソースから展開されたWARアーティファクトを作成することでした。 WildFly Swarmの依存関係は含まず、他のすべてを含めてください。

次に、通常の古いWildFly StandaloneをJBossの実行コンフィギュレーションとともに使用すると、IntelliJは展開された戦争を展開します。そこからホットスワップ、デバッグなどができます。

開発のために、WildFly Standaloneでコードを実行してください。プロダクションでは、WildFly Swarm jarを使用します。これは私のためには完璧に機能し、私は数ヶ月間この問題を解決してきました。

+1

私はまったく同じことを達成しようとしていますが、どこから始めたらいいのか分かりません。あなたは群れに関連する依存関係をどのように排除するのですか? – Nicolas

関連する問題