アノテーションプロセッシング
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 プロパティ を使用します。
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>1.8</source> <!-- depending on your project -->
<target>1.8</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.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'
]
}
}
gradle eclipse
を実行するとeclipseの設定ファイルが生成されます。
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
ファイルで指定されたオプションは、ビルドツールに固有のオプションによって上書きされます。