IntelliJ IDEA 2026.1 Help

テンプレート言語: Velocity と FreeMarker

IntelliJ IDEA を使用すると、 Velocity(英語) (VTL) および FreeMarker(英語) (FTL) でテンプレートを開発できます。

コーディング支援は、デフォルトで Ultimate サブスクリプション付きの IntelliJ IDEA にバンドルされ、有効化されている Apache VelocityFreeMarker プラグインに依存しています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。 詳細については、 プラグイン設定を開く を参照してください。

テンプレート言語ディレクティブの補完
テンプレート言語変数の完成

デフォルトでサポートされているファイルタイプは次のとおりです。

VTL

.ft .vm .vsl

FTL

.ftl .ftlh .ftlx

テンプレートの静的部分が記述されている言語(テンプレートデータ言語と呼ばれる)のコーディング支援を有効にするには、次のいずれかを実行します。

テンプレートデータ言語をプロジェクト内のファイルやフォルダーに関連付ける

  1. 設定 ダイアログ (Ctrl+Alt+S) で、 言語およびフレームワーク をクリックし、次に テンプレートデータ言語 をクリックします。

  2. プロジェクトの右側のテンプレートデータ言語セルまたは対応するディレクトリまたはファイルをクリックし、言語を選択します。

  3. 変更を適用するには、 OK をクリックします。

個々のテンプレートファイルは、 テンプレートデータ言語を次のように変更する コンテキストメニューコマンドを使用して、エディターでテンプレートデータ言語を直接割り当てることができます。

対応するファイルタイプの拡張パターンを追加する

  1. 設定 ダイアログ (Ctrl+Alt+S) で、 エディター をクリックし、次に ファイルタイプ をクリックします。

  2. 認識されたファイルタイプ で、 FreeMarker テンプレート または Velocity テンプレート を選択します。

  3. ファイル名のパターン で、 をクリックします。

  4. ワイルドカードの追加 ダイアログで、ファイル名の拡張パターンを指定し、言語を選択して、 OK をクリックします。

    velocity_add_pattern
  5. 変更を適用するには、 OK をクリックします。

未解決の参照の修正

IntelliJ IDEA は提供 インスペクションをテンプレート言語に未解決の参照を検出するために:

未解決の参照のテンプレート言語例インスペクションの例

未解決の参照は、 インテンションアクションを使用して修正できます。 同じファイルにコメントを追加するか、コメントを含む別のファイルを作成するかを選択できます。 詳細については、 特別なコメントを参照してください。

未解決の参照を修正するためのテンプレート言語インテンションの例

後者の場合、デフォルト名 velocity_implicit.vm または freemarker_implicit.ftl のファイルが作成されます。 このファイルは次のコメントで始まります:

#* @implicitly included *#

参照タイプを定義するためのコード補完はコメントファイルで利用できます。

ファイルの名前を変更するか、ソースルート内の別の場所に移動すると、参照定義は失われません。

特別なコメント

IntelliJ IDEA には、テンプレート言語を使用するための次の特別なコメントが用意されています。

FreeMarker のコメントは、 <#----> 、または [#----#] のいずれかを使用して区切られます。

コメント

説明

@implicitly included

このコメントで始まる FreeMarker ファイルは、同じモジュールまたはその依存関係にあるすべてのファイルに含まれます。 このような専用のコメントファイルを使用して IDE 固有のコメントを定義し、テンプレートファイルを汚さないようにします。

@ftlvariable

変数を定義します。 例えば、次のコメントは foo という名前の変数を型 String として宣言し、指定されたファイル内のみで可視となります。

<#-- @ftlvariable name="foo" type="java.lang.String" file="path/to/file" -->

この場合、 String を正しく解決するには、モジュールに JDK をアタッチしてください。 プリミティブ型およびジェネリック型がサポートされています。 ファイル パラメーターは省略可能です。

@ftlroot

インポート および include ディレクティブが解決される基準となるパスを定義します。 パスは、現在の FTL ファイルのパッケージ内のいずれかのディレクトリからの相対パスで指定します。 JAR 内のパスもサポートされています。例えば:

<#-- @ftlroot "path/to.jar!/path/inside/jar" -->

Velocity コメントは、 #**# を使用して区切られています。

コメント

説明

@implicitly included

このコメントで始まる Velocity ファイルは、同じモジュール内のすべてのファイルに含まれます。 このような専用のコメントファイルを使用して IDE 固有のコメントを定義し、テンプレートファイルを汚さないようにします。

@vtlvariable

変数を定義します。 例えば、次のコメントは foo という名前の変数を型 String として宣言し、指定されたファイル内のみで可視となります。

#* @vtlvariable name="foo" type="java.lang.String" file="path/to/file" *#

この場合、 String を正しく解決するには、モジュールに JDK をアタッチしてください。 プリミティブ型およびジェネリック型がサポートされています。 ファイル パラメーターは省略可能です。

@vtlmacrolibrary

このコメントを持つファイルに関連するテンプレートマクロを含むファイルを定義します。 例: 次のコメントは、 lib.vm のマクロが file.vm のコード解析にアクセスできるようにします。

#* @vtlmacrolibrary path="lib.vm" file="file.vm" *#

@velocityproperties

このコメントを持つファイルとの相対的な velocity.properties ファイルとランタイムルートディレクトリを定義します。 例:

#* @velocityproperties path=”path/to/velocity.properties” runtime_root=”path/to/runtime/root/dir” *#
2026 年 3 月 30 日