アノテーションプロセッシング

Doma はコンパイル時に Pluggable Annotation Processing API を使用します。

このドキュメントでは、Doma のアノテーションプロセッサのオプションについて説明し、それらをビルドツールに渡す方法を示します。

オプション

doma.dao.package

生成された @Dao アノテーションが付いたインタフェースの実装クラスが属するパッケージ。指定された値は、doma.dao.subpackage の値をオーバーライドします。デフォルト値は、 @Dao アノテーションが付けられたインタフェースが属するパッケージと同じパッケージです。

doma.dao.subpackage

@Dao アノテーションが付けられたインタフェースの生成された実装クラスが属するサブパッケージ。指定された値は、doma.dao.package の値によってオーバーライドされます。この値が impl で、 @Dao アノテーションが付けられたインタフェースのパッケージが example.dao である場合、生成された実装クラスはパッケージ example.dao.impl に属します。

doma.dao.suffix

@Dao アノテーションが付けられたインタフェースの生成された実装クラスが持つ名前の接尾辞。この値が Bean で、 @Dao アノテーションが付けられたインタフェースの単純名が EmployeeDao である場合、生成される実装クラスの単純名は EmployeeDaoBean になります。デフォルト値は Impl です。

doma.debug

アノテーション処理時にデバッグログを出力するかどうか。値が true の場合、アノテーション プロセッサはデバッグログを出力します。デフォルト値は false です。

doma.domain.converters

@DomainConverters の注釈が付けられたクラスの完全修飾名。名前はカンマ区切りのリストとして記述されます。この値は、外部ドメイン クラスを検索するために使用されます。

doma.entity.field.prefix

生成されたエンティティメタクラスのフィールドに付けられる名前プレフィックス。値 none は、プレフィックスが使用されないことを意味します。デフォルト値は $ です。

doma.expr.functions

org.seasar.doma.expr.ExpressionFunctions を実装するクラスの完全修飾名。デフォルト値は org.seasar.doma.expr.ExpressionFunctions です。この値は、式言語から呼び出し可能な関数を決定するために使用されます。

doma.metamodel.enabled

Criteria API のメタクラスを生成するかどうか。値が true の場合、たとえ metamodel = @Metamodel で指定されていなくても、すべてのエンティティクラスに対してメタモデルが生成されます。デフォルト値は false です。

doma.metamodel.prefix

Criteria API のメタモデル クラスの名前接頭辞。デフォルト値は空の文字列です。

doma.metamodel.suffix

Criteria API のメタモデル クラスの名前接尾辞。デフォルト値は _ です。

doma.resources.dir

doma.compile.config ファイルや SQL ファイルなどのリソース ファイルが含まれるリソースディレクトリ。値は絶対パスで指定します。値が指定されていない場合、リソース ディレクトリはクラスが生成されるディレクトリと同じになります。

doma.sql.validation

SQL ファイルの存在と SQL コメントの文法を検証するかどうか。値が true の場合、検証が実行されます。検証を無効にするには、false を設定します。デフォルト値は true です。

doma.version.validation

実行時とコンパイル時の間で Doma のアーティファクトのバージョンを検証するかどうか。値が true の場合、検証が実行されます。検証を無効にするには、 false を設定します。デフォルト値は true です。

doma.config.path

Doma の構成ファイルのファイル パス。デフォルト値は doma.compile.config です。

Gradle でのオプションの設定

compilerArgs プロパティ を使用します。

compileJava {
    options {
        compilerArgs = ['-Adoma.dao.subpackage=impl', '-Adoma.dao.suffix=Impl']
    }
}

IntelliJ IDEA でのオプションの設定

プロジェクトを Gradle プロジェクトとしてインポートします。この場合、build.gradleに記述されたオプションが使用されます。

Eclipse でのオプションの設定

Gradle プラグイン com.diffplug.eclipse.apt とprocessorArgs プロパティを使用します。

plugins {
    id 'com.diffplug.eclipse.apt' version '3.22.0'
}

compileJava {
  aptOptions {
    processorArgs = [
      'doma.dao.subpackage' : 'impl', 'doma.dao.suffix' : 'Impl'
    ]
  }
}

gradle eclipse を実行するとeclipseの設定ファイルが生成されます。

設定ファイルによるオプションの設定

doma.compile.config ファイルで指定されたオプションは、Eclipse、IDEA、Gradle などのすべてのビルド ツールで使用できます。

doma.compile.config ファイルはプロパティファイル形式に従い、src/main/resources などのルート ディレクトリに配置する必要があります。

注釈

doma.compile.config ファイルで指定されたオプションは、ビルドツールに固有のオプションによって上書きされます。