From 2f94254499b8d032ecae26f603bccfe3841fdbf9 Mon Sep 17 00:00:00 2001 From: linpeilie Date: Wed, 17 May 2023 15:00:13 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20-=20=E5=BF=AB=E9=80=9F=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Gradle=20=E9=85=8D=E7=BD=AE=20-=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 2 ++ docs/guide/faq.md | 56 +++++++++++++++++++++++--------- docs/introduction/quick-start.md | 24 ++++++++++++++ 3 files changed, 67 insertions(+), 15 deletions(-) diff --git a/docs/README.md b/docs/README.md index 660a9f0..2d1d0ff 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,6 +9,8 @@ actions: - text: 快速开始 💡 link: /introduction/quick-start/ type: primary + - text: 常见问题 + link: /guide/faq features: - title: 快速 diff --git a/docs/guide/faq.md b/docs/guide/faq.md index 8eafb9d..0123fdc 100644 --- a/docs/guide/faq.md +++ b/docs/guide/faq.md @@ -6,12 +6,34 @@ category: description: MapStructPlus MapStructPlus常见问题 faq --- +## 生成的转换接口与转换类在哪里查看 + +在编译后的 target/generated-sources 目录下,如果没有该目录,则需要配置 IDEA 展示排除的文件(Show Excluded Files) + +## "cannot find converter from xxx to xxx" / 没有生成转换接口 + +1. 建议按照[快速开始](/introduction/quick-start.html)重新查看一下自己的依赖和配置是否齐全, + 如果项目中使用了 Lombok,则按照[指南-常见问题#与Lombok整合](/guide/faq.html)来进行配置; +2. 重新加载 Maven 依赖(Reload All Maven Projects) +3. mvn clean compile +4. 在 /target/generated-sources 目录下,查看是否生成转换接口。 +5. 如果没有生成,联系作者 +6. 如果已经生成,需要确认 SpringBoot 能否扫描到生成接口所在的包! + +## 生成的转换接口及实现类的目录规则 + +默认情况下,会在生成在源类同包名下,可以通过[配置](/guide/configuration.html)来指定具体的目录。 + +> 需要注意,如果是外部依赖包,也会生成在外部依赖类所在的同名包下,导致 Spring 扫描不到,这种情况下,建议指定具体的目录。 + ## 与 `lombok` 整合 与 Mapstruct 整合 lombok 的方式一致。 ### lombok 1.18.16 之前: +#### Maven + ```xml @@ -41,8 +63,19 @@ description: MapStructPlus MapStructPlus常见问题 faq ``` +#### Gradle + +```groovy +dependencies { + annotationProcessor group: 'org.projectlombok', name: 'lombok', version: {lombok.version} + annotationProcessor group: 'io.github.linpeilie', name: 'mapstruct-plus-processor', version: ${mapstruct-plus.version} +} +``` + ### lombok 1.18.16 及以后: +#### Maven + ```xml @@ -77,19 +110,12 @@ description: MapStructPlus MapStructPlus常见问题 faq ``` -## 生成的转换接口与转换类在哪里查看 +#### Gradle -在编译后的 target/generated-sources 目录下,如果没有该目录,则需要配置 IDEA 展示排除的文件(Show Excluded Files) - -## 没有生成转换接口 - -1. 建议按照[快速开始](/introduction/quick-start.html)重新查看一下自己的依赖和配置是否齐全, -如果项目中使用了 Lombok,则按照[指南-常见问题#与Lombok整合](/guide/faq.html)来进行配置; -2. 重新加载 Maven 依赖(Reload All Maven Projects) -3. mvn clean compile - -## 生成的转换接口及实现类的目录规则 - -默认情况下,会在生成在源类同包名下,可以通过[配置](/guide/configuration.html)来指定具体的目录。 - -> 需要注意,如果是外部依赖包,也会生成在外部依赖类所在的同名包下,导致 Spring 扫描不到,这种情况下,建议指定具体的目录。 \ No newline at end of file +```groovy +dependencies { + annotationProcessor group: 'org.projectlombok', name: 'lombok', version: {lombok.version} + annotationProcessor group: 'io.github.linpeilie', name: 'mapstruct-plus-processor', version: ${mapstruct-plus.version} + annotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: '0.2.0' +} +``` \ No newline at end of file diff --git a/docs/introduction/quick-start.md b/docs/introduction/quick-start.md index bf00ffd..d3f6f06 100644 --- a/docs/introduction/quick-start.md +++ b/docs/introduction/quick-start.md @@ -42,6 +42,8 @@ public class User { 引入 `mapstruct-plus` 依赖: +#### Maven + ```xml 最新版本 @@ -75,6 +77,16 @@ public class User { ``` +#### Gradle + +```groovy +dependencies { + implementation group: 'io.github.linpeilie', name: 'mapstruct-plus', version: ${mapstruct-plus.version} + + annotationProcessor group: 'io.github.linpeilie', name: 'mapstruct-plus-processor', version: ${mapstruct-plus.version} +} +``` + ### 添加配置类 在 Bean 对象所在模块包中,任意类上增加注解:`@ComponentModelConfig(componentModel = "default")` @@ -138,6 +150,8 @@ public class QuickStart { 引入 `mapstruct-plus-spring-boot-starter` 依赖: +#### Maven + ```xml 最新版本 @@ -171,6 +185,16 @@ public class QuickStart { ``` +#### Gradle + +```groovy +dependencies { + implementation group: 'io.github.linpeilie', name: 'mapstruct-plus-spring-boot-starter', version: ${mapstruct-plus.version} + + annotationProcessor group: 'io.github.linpeilie', name: 'mapstruct-plus-processor', version: ${mapstruct-plus.version} +} +``` + ### 指定对象映射关系 同非 SpringBoot 环境