gpt4 book ai didi

java - IntelliJ 2019.3 中 Gradle 多模块构建的注释处理器配置似乎无法正常工作

转载 作者:行者123 更新时间:2023-12-02 01:59:24 25 4
gpt4 key购买 nike

我有一个 Gradle 多模块项目,它使用 Mapstruct 注释处理器来跨 Java 模块进行数据类型映射。 Gradle 构建工作正常,但当我将项目导入 IntellJ IDEA 2019.3 时,我得到了意外的注释处理器配置。

项目结构如下所示

.
├── build.gradle
├── module1
│   └── src
│   └── main
│   └── java
│   └── io
│   └── wangler
│   └── mapstruct
│   ├── ApplicationModule1.java
│   ├── Person.java
│   ├── PersonDTO.java
│   └── PersonMapper.java
├── module2
│   └── src
│   └── main
│   ├── generated
│   │   └── ch
│   │   └── silviowangler
│   │   └── mapstruct
│   │   └── CarMapperImpl.java
│   └── java
│   └── ch
│   └── silviowangler
│   └── mapstruct
│   ├── ApplicationModule2.java
│   ├── Car.java
│   ├── CarDTO.java
│   └── CarMapper.java
└── settings.gradle

以及为 module1module2 注册注释处理器的 build.gradle

subprojects { p ->

apply plugin: 'java-library'
apply plugin: 'groovy'

repositories {
jcenter()
}

dependencies {

annotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final'
implementation 'org.mapstruct:mapstruct:1.3.1.Final'

testImplementation 'org.codehaus.groovy:groovy-all:2.5.8'

testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
testImplementation 'junit:junit:4.12'
}
}

当我使用 ./gradlewcompileJava 编译项目时,一切正常,没有出现编译错误。

但是当我使用 IntelliJ 运行重建项目时,我在 module1 中收到编译错误,因为 IntelliJ 没有为 module1 注册注释处理器.

Error:(6, 35) java: cannot find symbol
symbol: class PersonMapperImpl
location: class io.wangler.mapstruct.ApplicationModule1

Wrong Annotation processor configuration

我在这里做错了什么还是这是一个已知的 IntelliJ 问题?此示例的源代码可以在 https://github.com/saw303/idea-annotation-processors 找到。

最佳答案

我在 IDEA 2019.3 中遇到了同样的问题。看起来像一个错误。仅当两个模块具有同一组注释处理器时才会发生这种情况。

要解决该问题,您需要使用annotationProcessor指令将任何库添加到模块之一。它不必是真正的注释处理器。这对我有用:

annotationProcessor "commons-io:commons-io:${commonsIoVersion}"

我在 JerBrains bugtracker 中创建了一个缺陷:IDEA-230337

关于java - IntelliJ 2019.3 中 Gradle 多模块构建的注释处理器配置似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59175126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com