【发布时间】:2019-05-17 20:48:40
【问题描述】:
我正在尝试让 Mapstruct 注释处理器在 Gradle 项目中的 IntelliJ 中工作。
理想情况下,我希望所有配置都在 gradle 文件中,并且任何人都可以将项目导入 IntelliJ 并获得完整的设置,而无需手动设置任何首选项。
但我可以妥协。
我正在使用带有 Java 11 的 IntelliJ 2018.3 和 Gradle 5.0(即最新最好的)。 Mapstruct 版本是 1.2.0.FINAL。
我做了什么:
-
在我的
build.gradle中配置了 Mapstruct 注释处理器:compile "org.mapstruct:mapstruct-jdk8:${mapstruct_version}" annotationProcessor "org.mapstruct:mapstruct-processor:${mapstruct_version}" 在“构建、执行、部署 -> 构建工具 -> Gradle -> Runner”下的首选项中选择“将 IDE 构建/运行操作委托给 Gradle”
在build/classes/java/main/com/myapp/mypackage/mapper/ 目录中,我看到MyMapperImpl.class 和MyMapperImpl.java,因此代码生成似乎可以工作。
现在我希望当我选择带注释的摘要 MyMapper 类并按 ctrlH 时,生成的 MyMapperImpl 会出现在层次结构视图中。
如果我手动将build/classes/java/main/ 标记为“生成的源”目录(我真的不想这样做,见上文),该类仍然不会出现在层次结构中。但是源代码标记有很多错误,因为显然没有找到我的项目中的类。
不用说:我可以从 IntelliJ 和命令行完美地运行使用映射器的测试。
【问题讨论】:
-
使用Gradle idea插件试试这个workaround。
标签: java intellij-idea annotation-processing mapstruct