当前位置: 首页 > 知识库问答 >
问题:

Mapstruct UnappedTargetPolicy警告似乎没有效果

姜智渊
2023-03-14

我正在使用Mapstruct 1.3.0投影这个源对象

import lombok.Data;
@Data
public class SimpleSource {
    private String firstField;
    private String secondField;
    private String noMappingDefined;
}

进入本DTO:

import lombok.Data;
@Data
public class SimpleDestination {

    private String field1;
    private String field2;

}

在我的界面中,我没有为字段“noMappingDefined”定义任何映射

@Mapper
public interface TestMapper {
    @Mapping(source = "firstField", target = "field1")
    @Mapping(source = "secondField", target = "field2")
    SimpleDestination sourceToDestination(SimpleSource source);

    @InheritInverseConfiguration
    SimpleSource destinationToSource(SimpleDestination destination);

}

在构建项目时,将POM中的compilerArgs中的UnappedTargetPolicy设置为WARN不会导致任何通知,并且在Mapstruct生成的目标类中找不到没有映射的字段。

        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <annotationProcessorPaths>
                <path>
                    <groupId>org.mapstruct</groupId>
                    <artifactId>mapstruct-processor</artifactId>
                    <version>1.3.0.Beta2</version>
                </path>
                <path>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>${lombok.version}</version>
                </path>                 
            </annotationProcessorPaths>
            <compilerArgs>
                <compilerArg>
                    -Amapstruct.defaultComponentModel=spring                        
                </compilerArg>
                <compilerArg>
                    -Amapstruct.unmappedTargetPolicy=WARN
                </compilerArg>
            </compilerArgs>
        </configuration>

生成的类没有像预期的那样包括未映射的字段,但是我希望在构建项目时看到警告。

如果我将unmapetdTargetStrategy更改为ERROR,则构建失败。

无论是在POM中还是在界面上的@Mapper注释中配置,行为都是相同的。

还有其他人遇到过这个问题吗?我正在做一个有数百个字段需要绘制的项目,并不是所有字段都是关键的,但如果我遗漏了任何字段,那就太好了。

谢谢。

共有1个答案

诸葛亮
2023-03-14

这原来是一个POM问题,我添加了show Warnings标签并将其设置为true;

            <showWarnings>
                true
            </showWarnings>
            <compilerArgs>
                <compilerArg>
                    -Amapstruct.defaultComponentModel=spring                        
                </compilerArg>
                <compilerArg>
                    -Amapstruct.unmappedTargetPolicy=WARN
                </compilerArg>
            </compilerArgs>

现在我看到了我在构建项目时预期的警告。

 类似资料:
  • 我正在运行具有以下配置的Web服务器: Ubuntu 14.04 PHP 5.5.9 PHP-FPM Nginx 当我在Symfony应用程序中上传文件时,我收到错误

  • 这是我的功能: 我有十个测试,完全是这样的: 因此,根据我的计算,一次测试只会产生1/10,000次重复运行,10次测试只会产生1/1000次重复运行。然而,它在大约50%的运行中创建了副本,我不知道为什么。

  • 我对python还很陌生,我正在尝试创建21点。然而,当我试图打印出玩家的手牌时,我遇到了一些困难。 这是我的击球(抽牌)代码: 这是我打印卡片的代码: 我的代码所做的第一件事是为庄家和玩家抽两张牌,这运行得很好。然而,当玩家抽到一张牌后,它就会变得有点摇摆不定。输出如下所示: 当我抽到一张新牌时,这张牌不变,它保持我抽到的最后一张牌。然后,当我打印我的甲板,它打印我的旧甲板和我的新甲板。但是,分

  • 我完全不知所措,我不明白这里出了什么问题。我正在编写一个Java程序来获取一些数据库并将它们放入mySQL数据库中。我在构建路径中找到了JConnector: 构建路径截图 当我运行这段代码时,输出是: 当我删除地址的"? user=root"部分时,它会给我: 这意味着,如果我无法连接到数据库,它将抛出异常,因此它显然正在连接,但它表示没有选择任何数据库,尽管我只是在几行前连接到它。事实上,返回

  • 我有一个Camel-ReST路由,它使用Jackson将集合转换为JSON,但当集合中的对象包含LocalDate时,它会抛出一个错误(没有LocalDate,一切都很好)。 com.fasterxml.jackson.databind.exc.:默认不支持Java8日期/时间类型:添加模块"com.fasterxml.jackson.datatype: jackson-datatype-jsr3

  • 我正试图在我的测试环境中部署一个基于3个节点的: 1个名称节点(主节点:172.30.10.64) 2个数据节点(slave1:172.30.10.72和slave2:172.30.10.62) 我在namenode中配置了主属性文件,在datananodes中配置了从属性文件。 主持人: hdfs站点。xml: 核心站点。xml: yarn-site.xml: mapred-site.xml: