gradle - Mapstruct 与 Intellij 和 Gradle 一起使用时不会生成 BeanMapperImpl.java

标签 gradle intellij-idea mapstruct

以前我在 Eclipse 中使用了 Mapstruct,它工作正常(Gradle 与命令“eclipse”一起使用来生成 Eclipse 项目文件,并且构建是由 Eclipse 本身完成的)。迁移到 Intellij 后,Mapstruct 不再生成 BeanMapperImpl.java。我的 build.gradle 如下:

plugins {
    id 'net.ltgt.apt' version '0.9'
}

...

allprojects {
    apply plugin: 'eclipse'
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'net.ltgt.apt'
    ...
}

subprojects {
    dependencies {
        compile 'org.mapstruct:mapstruct-jdk8:1.2.0.Final'
        apt 'org.mapstruct:mapstruct-processor:1.2.0.Final
        ...
    }
}

Intellij 的构建被委托(delegate)给 Gradle。

最佳答案

根据您的 IntelliJ 版本,您可以转储 net.ltgt.apt 插件并将 mapstruct-processor 设为 compileOnly依赖。

使用旧版本的 IntelliJ,结果可能会有所不同。

在 gradle 中,可能会在 .class 旁边生成 java 文件文件。虽然不干净,但您可以在包装过程中将它们过滤掉,如下所示:

jar {
    exclude('**/*.java')
}

也可以更改目标文件夹...

关于gradle - Mapstruct 与 Intellij 和 Gradle 一起使用时不会生成 BeanMapperImpl.java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49607302/

相关文章:

android - Kotlin 单元测试未找到模块依赖接口(interface)

android - .gradlew命令行构建中找不到dokka?

android - 无法为 SigningConfig_Decorated{name=debugY 获取未知属性 'RELEASE_STORE_PASSWORD'

scala - Intellij 不会运行 ScalaTests - "Incompatible Class Change Error"

java - 无法从 IntelliJ 连接到 AWS rekognition API

java - MapStruct - 如何忽略 POJO 中不必要的方法/非 getter-setter 方法

java - 映射结构 : abstract target class and concrete type based on discriminator field

spring-boot - Kotlin 中的 MapStruct : How to map from multiple sources into one model?

android - React-native 并且它不起作用,指责在项目 "Task ' 中找不到一些错误 ':app' installRelease'

java - Tomcat 找不到我要转发到的 jsp 页面