如何更改 MapStruct 生成的 *.java 文件的位置?

sma*_*nda 2 java gradle mapstruct

我正在使用具有默认配置的 MapStruct。除了构建实现(*.java)文件位置之外,一切都按预期工作。应用程序构建后,它们位于包含*.class文件的build/classes/java...包中。如何配置 MapStruct 来避免此类问题?

我在 MapStruct 网站上搜索类似的问题,但没有找到任何内容。

//build.gradle
dependencies {
    implementation("org.mapstruct:mapstruct-jdk8:1.2.0.Final")
    annotationProcessor("org.mapstruct:mapstruct-processor:1.2.0.Final")
}
Run Code Online (Sandbox Code Playgroud)

M.R*_*uti 5

您可以使用注释处理器配置来配置生成的源文件的目标目录,例如,如果您希望这些文件位于“/src/ generated/java”中:

compileJava {
    options.annotationProcessorPath = configurations.annotationProcessor
    options.setAnnotationProcessorGeneratedSourcesDirectory(file("$projectDir/src/generated/java"))

}
Run Code Online (Sandbox Code Playgroud)

请注意,您不应在 SCM 下提交这些生成的文件,因此不要忘记更新您的“.gitignore”文件(如果您使用 Git)以排除/src/generated/文件夹)