アノテーションプロセッシング
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.trace
Whether to output trace logs during annotation processing. If set to
true, the annotation processors will output trace logs, including the execution time of annotation processing. The default value isfalse.- doma.version.validation
実行時とコンパイル時の間で Doma のアーティファクトのバージョンを検証するかどうか。値が
trueの場合、検証が実行されます。検証を無効にするには、falseを設定します。デフォルト値はtrueです。- doma.config.path
Doma の構成ファイルのファイル パス。デフォルト値は
doma.compile.configです。
Gradle でのオプションの設定
compilerArgs プロパティ を使用します。
tasks {
compileJava {
options.compilerArgs.addAll(listOf("-Adoma.dao.subpackage=impl", "-Adoma.dao.suffix=Impl"))
}
}
compileJava {
options {
compilerArgs = ['-Adoma.dao.subpackage=impl', '-Adoma.dao.suffix=Impl']
}
}
Maven でのオプションの設定
compilerArgs パラメータ: を使用します。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source> <!-- depending on your project -->
<target>17</target> <!-- depending on your project -->
<annotationProcessorPaths>
<path>
<groupId>org.seasar.doma</groupId>
<artifactId>doma-processor</artifactId>
<version>${doma.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-Adoma.resources.dir=${project.basedir}/src/main/resources</arg>
<arg>-Adoma.dao.subpackage=impl</arg>
<arg>-Adoma.dao.suffix=Impl</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
Eclipse でのオプションの設定
Gradle
Gradle プラグイン com.diffplug.eclipse.apt と processorArgs プロパティを使用します。
plugins {
id("com.diffplug.eclipse.apt") version "3.43.0"
}
tasks {
compileJava {
val aptOptions = extensions.getByType<com.diffplug.gradle.eclipse.apt.AptPlugin.AptOptions>()
aptOptions.processorArgs = mapOf(
"doma.dao.subpackage" to "impl",
"doma.dao.suffix" to "Impl"
)
}
}
plugins {
id 'com.diffplug.eclipse.apt' version '3.43.0'
}
compileJava {
aptOptions {
processorArgs = [
'doma.dao.subpackage' : 'impl', 'doma.dao.suffix' : 'Impl'
]
}
}
Eclipse でプロジェクトを右クリックし、Gradle > Refresh Gradle Project を選択します。これにより Gradle に指定したアノテーションプロセッサのオプションが Eclipse へ反映されます。
Maven
Eclipse でプロジェクトを右クリックし、Maven > Update Project... を選択します。これにより Maven のアノテーションプロセッサのオプションが Eclipse へ反映されます。
IntelliJ IDEA でのオプションの設定
Gradle
Gradle プロジェクトとしてプロジェクトをインポートします。この場合、build.gradle(.kts)に書かれたオプションが使用されます。
Maven
プロジェクトを Maven プロジェクトとしてインポートします。この場合、pom.xml に書かれたオプションが使用されます。
設定ファイルによるオプションの設定
doma.compile.config ファイルで指定されたオプションは、Eclipse、IDEA、Gradle などのすべてのビルド ツールで使用できます。
doma.compile.config ファイルはプロパティファイル形式に従い、src/main/resources などのルート ディレクトリに配置する必要があります。
注釈
doma.compile.config ファイルで指定されたオプションは、ビルドツールに固有のオプションによって上書きされます。