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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改MapStruct生成的* .java文件的位置?相关的知识,希望对你有一定的参考价值。

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

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

//build.gradle
dependencies {
    implementation("org.mapstruct:mapstruct-jdk8:1.2.0.Final")
    annotationProcessor("org.mapstruct:mapstruct-processor:1.2.0.Final")
}
答案

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

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

}

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

以上是关于如何更改MapStruct生成的* .java文件的位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Eclipse 使用 Gradle 生成 MapStruct 映射器

Spring Boot | 集成MapStruct实现不同类型Java对象间的自动转换

mapstruct无法生成实现类

Java实体映射工具MapStruct的使用

mapstruct对象转换工具

MapStruct - 生成空对象解决方案