关闭 MapStruct 中的@Generate 注解

Turn off @Generate annotation in MapStruct

我想在生成的(通过 mapstruct)中禁用 @Generate 注释 classes.

我试试参数 -Amapstruct.suppressGeneratorTimestamp=true-Amapstruct.suppressGeneratorVersionInfoComment=true,但还是没有关闭注释。

在 mapstruct 的源代码中我发现 class GeneratedType,它在构造函数中声明了一个字段 generatedTypeAvailable,它影响模板 GeneratedType.ftl:

<#if !generatedTypeAvailable>/*</#if>
@Generated(
    value = "org.mapstruct.ap.MappingProcessor"<#if suppressGeneratorTimestamp == false>,
    date = "${.now?string("yyyy-MM-dd'T'HH:mm:ssZ")}"</#if><#if suppressGeneratorVersionComment == false>,
    comments = "version: ${versionInformation.mapStructVersion}, compiler: ${versionInformation.compiler}, environment: Java ${versionInformation.runtimeVersion} (${versionInformation.runtimeVendor})"</#if>
)<#if !generatedTypeAvailable>
*/</#if>

那么,如何将字段值generatedTypeAvailable设置为false

目前无法禁用 @Generated 注释的创建。为什么需要这样做?

您可以做的是:

  • 使用 -Amapstruct.suppressGeneratorTimerstamp=true
  • 抑制时间戳值
  • 抑制版本使用 -Amapstruct.suppressGeneratorVersionInfoComment