私はSpringを使用しています。私のプロジェクトではmapstructライブラリを使い始めていますので、@SpringMapperのように@Mapper(componentModel = "spring")のステレオタイプ注釈を作成することができました。しかし、マッパーは生成されません。MapperのMapstructステレオタイプ
何か間違っているのですか?
私はSpringを使用しています。私のプロジェクトではmapstructライブラリを使い始めていますので、@SpringMapperのように@Mapper(componentModel = "spring")のステレオタイプ注釈を作成することができました。しかし、マッパーは生成されません。MapperのMapstructステレオタイプ
何か間違っているのですか?
これは非常に興味深い考えですが、現時点ではサポートされていません。 MapStruct注釈プロセッサは、@SpringMapper
の定義に対して呼び出されますが、@SpringMapper
という注釈が付いた豆は表示されません。@Mapper
注釈のみを検索します。
言われ、MapStructはconfig classesを介してコンフィギュレーションを再利用する独自の手段を提供すること:
@MapperConfig(componentModel="spring")
public interface SpringMappers {}
は、コンフィギュレーションクラスにコンポーネント・モデルのようなすべての一般的なオプションを入れ、次いで、個々のマッパから参照:
@Mapper(config=SpringMappers.class)
public interface MyMapper {
//...
}
回答ありがとうございました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>