2017-03-12 13 views
0

私はSpringを使用しています。私のプロジェクトではmapstructライブラリを使い始めていますので、@SpringMapperのように@Mapper(componentModel = "spring")のステレオタイプ注釈を作成することができました。しかし、マッパーは生成されません。MapperのMapstructステレオタイプ

何か間違っているのですか?

答えて

1

これは非常に興味深い考えですが、現時点ではサポートされていません。 MapStruct注釈プロセッサは、@SpringMapperの定義に対して呼び出されますが、@SpringMapperという注釈が付いた豆は表示されません。@Mapper注釈のみを検索します。

言われ、MapStructはconfig classesを介してコンフィギュレーションを再利用する独自の手段を提供すること:

@MapperConfig(componentModel="spring") 
public interface SpringMappers {} 

は、コンフィギュレーションクラスにコンポーネント・モデルのようなすべての一般的なオプションを入れ、次いで、個々のマッパから参照:

@Mapper(config=SpringMappers.class) 
public interface MyMapper { 
    //... 
} 
0

回答ありがとうございましたGunnar

もう1つの可能な解決方法は次のとおりです。 次のmavenプラグインは、デフォルト(プロジェクトスコープ)componentModel = springおよびunmappedTargetPolicy = ERRORを設定します。

<properties> 
     <java.version>1.8</java.version> 
     <org.mapstruct.version>1.1.0.Final</org.mapstruct.version> 
    </properties> 


    <dependencies> 
     <dependency> 
       groupId>org.mapstruct</groupId> 
       <artifactId>mapstruct-jdk8</artifactId> 
       <version>${org.mapstruct.version}</version> 
      </dependency> 
    </dependencies> 

    <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.5.1</version> 
        <configuration> 
         <source>${java.version}</source> 
         <target>${java.version}</target> 
         <encoding>UTF-8</encoding> 
         <showDeprecation>true</showDeprecation> 
         <showWarnings>true</showWarnings> 
         <debug>true</debug> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.bsc.maven</groupId> 
        <artifactId>maven-processor-plugin</artifactId> 
        <version>3.2.0</version> 
        <configuration> 
         <defaultOutputDirectory> 
          ${project.build.directory}/generated-sources 
         </defaultOutputDirectory> 
         <processors> 
          <processor>org.mapstruct.ap.MappingProcessor</processor> 
         </processors> 
         <options> 
          <mapstruct.defaultComponentModel>spring</mapstruct.defaultComponentModel> 
          <mapstruct.unmappedTargetPolicy>ERROR</mapstruct.unmappedTargetPolicy> 
         </options> 
        </configuration> 
        <executions> 
         <execution> 
          <id>process</id> 
          <phase>generate-sources</phase> 
          <goals> 
           <goal>process</goal> 
          </goals> 
         </execution> 
        </executions> 
        <dependencies> 
         <dependency> 
          <groupId>org.mapstruct</groupId> 
          <artifactId>mapstruct-processor</artifactId> 
          <version>${org.mapstruct.version}</version> 
         </dependency> 
        </dependencies> 
       </plugin> 
      </plugins> 
     </build>