多くの調査の結果、最善の選択肢は独自の Maven プラグインを作成することであると判断しました。CSS および JS タグを HTML に挿入する場所に関するディレクティブを含む単純な .html テンプレートがあります。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Fifa Social - Hello World</title>
<meta name="description" content="Hello World app for Fifa Social">
<meta name="viewport" content="width=device-width">
$cssIncludes$
$jsIncludes$
</head>
<body>
<p>Page content</p>
</body>
</html>
次に、Maven ライフサイクルの「generate-sources」フェーズで実行される Maven プラグインを用意します。このプラグインは、テンプレートを取得し、$cssIncludes$
andを適切なandタグ$jsIncludes$
のリストに置き換えます。(注:プラグインの依存関係としてantlr stringtemplate Java ライブラリを使用しています)。<script>
<link>
独自のプロジェクトであるため、実際のプラグインを投稿することはできませんが、AbstractMojo から拡張された単一の Java クラスです。
- POMから
@parameter
読み取るプロパティがあります<configuratioon>
- html テンプレートの場所
- 出力ファイルの場所
- JS ファイルのリスト
- CSS ファイルのリスト
- 実行中に
- ファイルから html テンプレートを読み取り、文字列として保存します
org.antlr.stringtemplate.StringTemplate
html テンプレートからを作成します
- デフォルトを使用します
org.antlr.stringtemplate.language.DefaultTemplateLexer
。
<script>
および<link>
タグを文字列として作成する構成から JS および CS ファイルをループします。
template.setAttribute
構築された文字列を $cssIncludes$ および $jsIncludes$ にバインドするために使用します
- テンプレートをファイルシステムに書き込みます
それは非常にうまく機能します。現在の Maven プロファイルに基づいて、JS ファイルと CSS ファイルの別のリストをプラグインに送信するだけです。