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

标签 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")
}

最佳答案

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

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

}

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

关于java - 如何更改 MapStruct 生成的 *.java 文件的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54399929/

相关文章:

gradle - 带有crashlytics的自动Beta版

java - 从单个源文件夹 Gradle 多个 jar

android - 如何添加-Xlint :unchecked to my Android Gradle based project?

java - 如何使用 mapstruct 将枚举转换为 POJO?

java - 使用 Eclipse 调试 Mapstruct 实现

java - 如何获取字符串的 int 索引?

java - seleniumexecuteScript 在 IE 上挂起

java - 我必须开发一个自动调用maven命令的java类

java - 带启动 spring &java 13 的 mapstruct 1.3.1

java - FileWriter 和 jar 文件 - 找不到资源