我正在尝试使用IntelliJ2017终极版构建/运行一个使用MapStruct的Spring应用程序。这是一个分级项目。我的问题是,IntelliJ似乎没有运行MapStruct注释处理器。我意识到我可以将IntelliJ配置为委托给Gradle构建过程(Gradle build process,看看这个),但我希望简单地将IntelliJ配置为使用APT来生成必要的类本身。
我已经为我的项目启用了APT,但是我的类仍然没有生成。
build.gradle (适用的代码段):
ext {
mapstructVersion = '1.2.0.Final'
}
plugins {
id 'net.ltgt.apt' version '0.15'
}
dependencies {
// MapStruct support
implementation group: 'org.mapstruct', name: 'mapstruct-jdk8', version: mapstructVersion
annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: mapstructVersion
}IntelliJ配置:

然而,当我执行一个./gradle clean,然后是一个构建->重建项目时,我的out/production/classes/generated文件夹是空的。
有什么额外的事情,我需要做,以使APT在这个项目?IntelliJ应该自动检测类路径中的mapstruct注释处理器吗?
发布于 2018-07-23 10:16:47
最后,它与Intellji 2018.1 CE很好地工作。我们不需要任何apt插件。
下面是更新的gradle文件
plugins {
id 'java'
}
repositories {
mavenCentral()
mavenLocal()
}
sourceCompatibility = JavaVersion.VERSION_1_8
dependencies {
compile group: 'org.mapstruct', name: 'mapstruct-jdk8', version: '1.2.0.Final'
compileOnly 'org.mapstruct:mapstruct-processor:1.2.0.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.2.0.Final'
compileOnly ("org.projectlombok:lombok")
testCompile 'junit:junit:4.12'
}请确保正确配置了以下内容
发布于 2018-11-04 13:45:08
我的build.gradle:
plugins {
id 'java'
id 'idea'
}
ext {
mapstructVersion = '1.2.0.Final'
}
dependencies {
// bean mapping
compile group: 'org.mapstruct', name: 'mapstruct-jdk8', version: mapstructVersion
compileOnly group: 'org.mapstruct', name: 'mapstruct-processor', version: mapstructVersion
annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: mapstructVersion
}刷新并尝试重新构建项目。如果它不能顺利地为您工作,请继续下面的故障排除部分。
故障排除
如果对你不起作用..。


发布于 2021-09-29 23:49:44
如果您正在使用kotlin,则无法再在类路径中发现注释处理器。您必须将如下所示的依赖项放在build.gradle.kts中
kapt {
dependencies {
kapt("org.mapstruct:mapstruct-processor:1.4.2.Final")
}
}https://stackoverflow.com/questions/49540962
复制相似问题