2016-03-09 12 views
19

最初のSpring Bootアプリケーションをビルドするときに、/ resources/static/some-inのJavascriptファイルを変更するたびにアプリケーションを再起動する必要があることがわかりました。 file.jsSpringブートdevtools - 静的コンテンツのリロードがIntelliJで機能しない

これは非常に時間がかかります。

ファイルを/ webapps /フォルダに移動すると、期待通りに機能しますが、ファイルはJARにパッケージ化されていません。ドキュメントにはこのことが言及されているので、私はこのように続けることはできません。

私はすべてspring-boot-devtoolsを読んで、POMにインストールしましたが、ホットスワップは機能していません。私はまだJavascriptやCSSファイルの変更を見るためにアプリ全体を再起動する必要があります。さらに、間違った何が起こっているかを調査するためのステップであるもの

アプリを起動すると、私はそうspring-boot-devtoolsが何かをしなければならない、ラインLiveReload server is running on port 35729を見ることができますが...

私の推測では、IntelliJがアプリケーションを実行するとファイルがコピーされるため、変更すると実際に実行中のアプリケーションで使用されているファイルではなく元のファイルが変更されます。

PS:埋め込みTomcatサーバーで、Maven、IntelliJ IDEA 15、Spring Boot 1.3.3を使用しています。私はIntelliJがアプリを起動するために何を実行するのか分かりません。 IDEはこれを "自動的に"処理しています。おそらく私は実行構成を変更する必要がありますか?

+0

春のブートプロジェクトですか?春のブート時には、デフォルトでsrc/main/resources/templatesはviewsが存在する場所であり、webappsフォルダではありません。pom.xmlを投稿してください –

+0

私のファイルは正しい場所にあります。私は、ホットスワップが機能していないことに気づいたときに、それらを動かそうとしました。私は "webapps"フォルダを保持することができなかったことを認識した後、元の場所にファイルを返しました。 – Wouter

+1

IDEAでうまくいくビデオ:https://www.youtube.com/watch?v=VWF7vCJSqrA – GKislin

答えて

71

この作業を行うには、IntelliJのいくつかの機能をオンにする必要があります。

最初に、devtoolsを使用するプロジェクトに適用する必要があるプロジェクト固有の設定があります。[環境設定]> [コンパイラ]に移動し、[プロジェクトを自動的に作成する]を有効にします。

次の設定は、すべてのプロジェクトに適用されるIDEAレジストリ設定です。 OSXで

  • 、表示された検索ボックスにプレスShift+Command+A(Windowsの場合Shift+Ctrl+A
  • タイプ「レジストリ」、およびそれを開くために、レジストリを選択します。
  • compiler.automake.allow.when.app.runningを有効にして有効にします。

その後、アプリを再起動してください。あなたは、あなたが行ったすべての変更に合わせてプロジェクトが再構築されていることに気付くでしょう。ブラウザで結果をチェックアウトすると、静的ファイルとコードの両方が更新されたことがわかります。

私はこの少し前にブログ記事を書いています。 Windowsユーザーの場合 http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/

+2

Windowsの場合:Ctrl-Alt-Shift- /を押し、表示されるメニューから[レジストリ]を選択します。 –

+0

多くのお手伝いをしました、ありがとうございます! –

+1

かなりいいですね。私にとって究極の解決策は、自動的にではなく、ソースファイルを保存するときだけWebサーバーの再起動が行われることです。これを調査する。 – Jannik

11

は、手順は次のとおりです。
1)「実行、ビルドの展開」を、その後し、[ファイル] - > [設定]に移動 - >コンパイラと「自動的にプロジェクトを作成する」フラグを有効にします。
2)Ctrl-Alt-Shift- /を押し、表示されるメニューから[レジストリ]を選択します。 compiler.automake.allow.when.app.runningフラグを有効にします。
3)アプリを起動/再起動し、静的コンテンツの再読み込みを観察します。

関連する問題