JSONを提供するRESTfulバックエンドWebサービスを使用する、洗練されたajax駆動の単一ページWebアプリケーションを作成しました。 JavaScriptは多くの異なるファイルに分割され、各ファイルはある種の機能またはコンポーネントを表します。
サービスはalphaテスト中ですが、縮小せずにこれらすべてのファイルを個別に提供しています。しかし、私はbetaバージョンを起動したいので、ファイルを結合し、それらを縮小し、バージョン管理する必要があります。 Mavenを使用して、これをビルドプロセスに追加します。
私は次の「タイプ」のJavaScriptファイルを使用しています。そのうちの#3と#4が問題です。
ビルドプロセス中に次のことを実行したいと思います。
app-2.0.6.min.js
、2.0.6はMavenプロジェクトのバージョンです。feature-abc-56ab32de29.min.js
、ここで56ab32de29はその特定のファイルのバージョン番号です。<script>
タグで更新して、正しいバージョン番号のJavaScriptファイルを指すようにします。連結を支援するMavenプラグインはありますか?
縮小に役立つMavenプラグインはありますか?理想的には、Google Closure Compilerを使用したいのですが、もっと簡単な場合は他のコンパイラでも動作します。
バージョン管理を支援するMavenプラグインはありますか?
タイプ4のJavaScriptファイルに独立したバージョン番号を付ける方法はありますか?理想的には、ファイルがバージョン2.0.5と2.0.6の間で変更されない場合、ユーザーが新しいバージョンをダウンロードする必要はなく、キャッシュされたバージョンは正常に機能します。ソース管理にGITを使用していますが、バージョン管理にファイルのGITハッシュコードを使用する方法はありますか?
HTMLを強制終了せずに、通常のHTMLファイルにインライン化されているJavaScriptを圧縮するソリューションはありますか?
CSSファイルも圧縮してバージョン管理するソリューションはありますか?
yuicompressor-maven-plugin をご覧ください。さまざまなjs(およびcss)ファイルを集約したり、それらを縮小および難読化したりできます。
このタスクをターゲットとする真新しいMavenプラグインを次に示します。 http://mojo.codehaus.org/webminifier-maven-plugin/
(単一ページのJSアプリ用の)Maven環境にRequireJS最適化(Google Closureコンパイラーを使用+連結を行う)を正常に組み込みました。詳細については私の質問とフォローアップの回答を参照してください: 外部JS依存関係があるMavenプロジェクトでのRequireJSコンパイル
おそらくそれを拡張して、縮小されたJSアーティファクトをバージョン化してアーカイブすることができます。