以前我使用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。
答案 0 :(得分:0)
根据您的IntelliJ版本,您只需转储net.ltgt.apt插件并使mapstruct-processor成为compileOnly
依赖项。
对于旧版本的IntelliJ,结果可能会有所不同。
在gradle中,可能会在.class
文件旁边生成java文件。虽然不干净,但你可以在包装过程中将它们过滤掉:
jar {
exclude('**/*.java')
}
也可以更改目标文件夹......