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

时间:2018-04-02 07:45:13

标签: gradle intellij-idea mapstruct

以前我使用Mapstruct和Eclipse,它工作正常(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的构建被委托给Gradle。

1 个答案:

答案 0 :(得分:0)

根据您的IntelliJ版本,您只需转储net.ltgt.apt插件并使mapstruct-processor成为compileOnly依赖项。

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

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

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

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