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

如何在gradle项目中配置mapstruct

龚寂弦
2023-03-14

我试图将mapstruct添加到gradle spring boot项目中。这里是构建的相关部分。gradle文件:

    implementation 'org.mapstruct:mapstruct:1.4.2.Final'
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'

这是我的界面:

@Mapper
public interface LogMessageMapper {

    @Mapping(target = "content", ignore = true)
    LogMessageDto toLogMessageDto(LogMessage source);

    @AfterMapping
    default void setContentString(LogMessage source, @MappingTarget LogMessageDto target) {
        target.setContent(source.getContent().toString());
    }
}

我在两个地方收到了我的映射器接口的生成实现:首先是预期的,但我的代码没有使用:构建/生成/源/... /LogMessageMapperImpl

第二个意外但由我的代码使用:app/src/main/generated//LogMessageMapperImpl

如何配置gradle以使代码使用正确生成的类?谢谢你的建议。

UPD:意外的实现仅出现在intellij idea的启动应用程序或idea的运行测试上。在gradle上,只生成预期的干净构建,理想的实现和构建是成功的,测试也是成功的。

共有1个答案

董同
2023-03-14

从项目中删除. Ide文件夹并重新打开后,想法问题消失了。

 类似资料:
  • 我的gradle项目结构如下所示: 对于子项目,将使用引用gradle任务。 有什么想法让它正常工作吗?

  • 我尝试设置一个JavaEE环境,用gradle构建。最后,我希望有一个EAR文件,其中包含一个EJB-Jar和某种可以部署到Glassfish的应用程序客户端(可能)。设置将是非常基本的。 目前我面临两个问题: 1)运行“耳朵”任务来组装EAR存档在tmp/耳朵中创建了一个错误的application.xml文件,如下所示: eclipse报告的错误消息是: cvc复合型。2.4.答:发现以元素“

  • 是否可以设置子gradle项目的父项目。 在我的例子中,所有父子项目都位于文件层次结构中的同一级别。例如 > 代码 > /父项目 构建。格拉德尔 /child项目1 构建。格拉德尔 /子项目2 构建。格拉德尔 这里,项目1依赖于项目2,所以我将它们称为 也在我的设置中。gradle文件,我有 有了它,我可以从父项目文件夹运行任务,但单个任务不会从子项目运行。

  • 我成功地安装了所有的flatter需求,包括android studio的flatter和dart插件,没有任何遗漏。我在没有选择Kotlin支持的情况下创建了一个新的颤振项目,但在创建该项目后,我得到了与Kotlin相关的问题代码 用于使用Gradle(1.2.71)构建的Kotlin版本不同于捆绑在IDE插件(1.3.50)中的版本 这就是构建。gradle文件代码: 另一个问题是在这个dir

  • 我有一个Java项目(注意:-它不是一个web项目)。我正在使用log4j记录消息。 目前,我所遵循的步骤如下: > 在项目级别创建了log4j.properties文件。 声明的记录器Logger=Logger.getLogger(MyClass.Class); 然后使用->PropertyConfigurator.configure(“log4j.properties”)配置属性; 然后使用l

  • 是否有办法将GradleJava项目导入IntelliJ 2017.2. x并应用一些设置,例如 代码样式 vcs设置 从Gradle在项目层面? 我注意到例如Grails框架使用了idea-gradle-plugin,但这只能与Gradle任务结合使用。 我不想使用Gradle任务生成IntelliJ项目文件。每当我导入文件。 这可能吗?