現在、AngularJs を使用して組み込みサーバー (.jar ファイルにパッケージ化され、Tomcat として実行) 用のフロントエンド/webapp を開発しています。サーバーには、フロントエンドで使用できるようにしたいいくつかの API エンドポイントがあります。
私の現在のアプローチは、webjars を使用して、選択した angularjs バージョンをロードし、webapp フォルダー内にアプリケーションをビルドすることです。構造は次のようになります。
├───src
│ ├───main
│ │ ├───docker
│ │ ├───java
│ │ │ └───com
│ │ │ └───...
│ │ ├───resources
│ │ └───webapp
│ │ └───public
│ │ ├───css
│ │ └───js
│ │ └───controllers
└───target
├───classes
│ ├───com
│ │ └───...
│ └───public
│ ├───css
│ └───js
│ └───controllers
├───generated-sources
│ └───annotations
├───generated-test-sources
│ └───test-annotations
└───test-classes
└───com
└───...
私が編集しているファイルは src/main/webapp/public フォルダー内にあり、target/classes/public フォルダーに「コンパイル」されています。サーバーの実行中にファイルをリロードしたい場合は、実行する必要がありますRun -> Reload Changed Classes
。これは、開発中に適切に機能します。
しかし、最初は「スタンドアロン」の AngularJs 開発から来たので、実際の livereload と、最適化のために js/css ファイルを縮小および連結するビルド チェーン (grunt、bower) に慣れました。
今、私はすでにwro4jを調べており、問題なくセットアップできました。私にとってまだ欠けていることの1つは、ホットリロードです。上記のアプローチでさえ wro4j では機能しなくなったため、アプリケーション全体を再コンパイルして css/javascript または HTML 内の変更を確認するしかありませんでした。これを回避する簡単な方法はありますか?
私の好ましい方法は、開発中(サーバーをデバッグで実行中)に非縮小/非連結バージョンで作業し、アプリケーションがデプロイされたとき(または単に実行中)にのみビルドチェーン全体を実行することです。
私のオプションは何ですか?