以前我在 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/