以前,我将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的构建委托(delegate)给Gradle。

最佳答案

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

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

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

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

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

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

10-13 03:34