• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • 随笔>
  • 正文
  • MapStructPlus 报错整理

    2024年09月10日 1.2 k 阅读 0 评论 6359 字

    1."Couldn't retrieve @Mapper annotation" 异常

    该异常是因为 MapStruct 依赖冲突导致的,由于 MapStructPlus 中已经依赖了 MapStruct,所以在使用时无需再添加 MapStruct 的依赖。 同时,建议其它依赖中的 MapStruct,也建议排除掉,比如 springfox-swagger2 中就依赖了 MapStruct。

    排除完依赖后,重新执行 clean compile

    2.两个类型不一致
    可用注解:

    @AutoMapping(target = "menuIds", expression = "java(com.honghan.common.core.utils.StringUtils.join(source.getMenuIds(), \",\"))")

    例如类型:
    private Long[] menuIds
    和
    private String menuIds;
    类型

    3.pom 的build设置

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.verison}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>com.github.therapi</groupId>
                                <artifactId>therapi-runtime-javadoc-scribe</artifactId>
                                <version>0.15.0</version>
                            </path>
                            <path>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-configuration-processor</artifactId>
                                <version>${spring-boot.version}</version>
                            </path>
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                                <version>${lombok.version}</version>
                            </path>
                            <path>
                                <groupId>io.github.linpeilie</groupId>
                                <artifactId>mapstruct-plus-processor</artifactId>
                                <version>${mapstruct-plus.version}</version>
                            </path>
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok-mapstruct-binding</artifactId>
                                <version>${mapstruct-plus.lombok.version}</version>
                            </path>
                        </annotationProcessorPaths>
                        <compilerArgs>
                            <arg>-parameters</arg>
                        </compilerArgs>
                    </configuration>
                </plugin>
                <!-- 单元测试使用 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                    <configuration>
                        <argLine>-Dfile.encoding=UTF-8</argLine>
                        <!-- 根据打包环境执行对应的@Tag测试方法 -->
                        <groups>${profiles.active}</groups>
                        <!-- 排除标签 -->
                        <excludedGroups>exclude</excludedGroups>
                    </configuration>
                </plugin>
                <!-- 统一版本号管理 -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <version>${flatten-maven-plugin.version}</version>
                    <configuration>
                        <updatePomFile>true</updatePomFile>
                        <flattenMode>resolveCiFriendliesOnly</flattenMode>
                    </configuration>
                    <executions>
                        <execution>
                            <id>flatten</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>flatten</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>flatten.clean</id>
                            <phase>clean</phase>
                            <goals>
                                <goal>clean</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>com.spotify</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <version>${docker.plugin.version}</version>
                        <configuration>
                            <imageName>${docker.namespace}/${project.artifactId}:${project.version}</imageName>
                            <dockerDirectory>${project.basedir}</dockerDirectory>
                            <dockerHost>${docker.registry.host}</dockerHost>
                            <registryUrl>${docker.registry.url}</registryUrl>
                            <serverId>${docker.registry.url}</serverId>
                            <resources>
                                <resource>
                                    <targetPath>/</targetPath>
                                    <directory>${project.build.directory}</directory>
                                    <include>${project.build.finalName}.jar</include>
                                </resource>
                            </resources>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <!-- 关闭过滤 -->
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>src/main/webapp/</directory>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <!-- 引入所有 匹配文件进行过滤 -->
                    <includes>
                        <include>application*</include>
                        <include>bootstrap*</include>
                        <include>logback*</include>
                    </includes>
                    <!-- 启用过滤 即该资源中的变量将会被过滤器中的值替换 -->
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.018 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。