首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mapstruct注释处理器似乎无法在Intellij中与Gradle项目一起工作

Mapstruct注释处理器似乎无法在Intellij中与Gradle项目一起工作
EN

Stack Overflow用户
提问于 2018-03-28 17:42:56
回答 6查看 19K关注 0票数 7

我正在尝试使用IntelliJ2017终极版构建/运行一个使用MapStruct的Spring应用程序。这是一个分级项目。我的问题是,IntelliJ似乎没有运行MapStruct注释处理器。我意识到我可以将IntelliJ配置为委托给Gradle构建过程(Gradle build process,看看这个),但我希望简单地将IntelliJ配置为使用APT来生成必要的类本身。

我已经为我的项目启用了APT,但是我的类仍然没有生成。

build.gradle (适用的代码段):

代码语言:javascript
复制
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注释处理器吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-07-23 10:16:47

最后,它与Intellji 2018.1 CE很好地工作。我们不需要任何apt插件。

下面是更新的gradle文件

代码语言:javascript
复制
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'
}

请确保正确配置了以下内容

  1. 启用注释处理器(首选项->构建执行部署->编译器->注释处理器)
  2. MapStruct插件
  3. Lombok插件
票数 12
EN

Stack Overflow用户

发布于 2018-11-04 13:45:08

我的build.gradle:

代码语言:javascript
复制
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

}

刷新并尝试重新构建项目。如果它不能顺利地为您工作,请继续下面的故障排除部分。

故障排除

如果对你不起作用..。

  1. 手动启用注释处理器。 它似乎是一个与观念上的错误配置相关的annotationProcessor
  1. 查看" out /production/classes/generated“文件夹中的生成输出。如果它是空的,试着重建你的项目。确保通过手动删除生成输出文件夹的内容并在重新生成之前修改映射类来进行更改。 $ rm -rf out build .gradle
  2. 通过在IntelliJ IDEA之外构建和运行项目来验证您的Gradle构建文件。
  3. 尝试将生成操作委托给Gradle。我不使用这个选项,因为注释处理器无论如何都能为我工作。
  1. 更新到IntelliJ IDEA 2018.3或更高版本。
票数 7
EN

Stack Overflow用户

发布于 2021-09-29 23:49:44

如果您正在使用kotlin,则无法再在类路径中发现注释处理器。您必须将如下所示的依赖项放在build.gradle.kts中

代码语言:javascript
复制
kapt {
    dependencies {
        kapt("org.mapstruct:mapstruct-processor:1.4.2.Final")
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49540962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档