我试图在Quarkus项目中使用Mapstruct,但是当我使用/.mvnw compile quarkus:dev运行应用程序时,我得到了以下例外:
javax.enterprise.inject.UnsatisfiedResolutionException:类型org.acme.dto.mapper.BookMapper和限定符@Default的不满意依赖项
(我在target/generated-sources中检查了生成的类,它们得到了@ApplicationScoped)
详细信息:
Mapstruct依赖项添加到pom.xml中,如下所示:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
<scope>provided</scope>
</dependency>比我有几个地图要好:
@Mapper(componentModel = "cdi", uses = { BookDetailsMapper.class, AuthorMapper.class })
public interface BookMapper {
BookDto toDto(Book book);
Book toEntity(BookDto bookDto);
}
@Mapper(componentModel = "cdi")
public interface AuthorMapper {
AuthorDto toDto(Author author);
Author toEntity(AuthorDto author);
}
@Mapper(componentModel = "cdi")
public interface BookDetailsMapper {
BookDetailsDto toDto(BookDetails bookDetails);
BookDetails toEntity(BookDetailsDto bookDetailsDto);
}然后将BookMapper豆注入:
@ApplicationScoped
public class BookService {
private final BookMapper bookMapper;
@Inject
public BookService(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
...发布于 2022-11-09 08:59:30
问题是生成的mapstruct源没有编译成类文件。
我必须按以下方式添加mapstruct-processor依赖项:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
<path>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-extension-processor</artifactId>
<version>${quarkus.platform.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>https://stackoverflow.com/questions/74371500
复制相似问题