开发者社区> 问答> 正文

MapStruct-未找到MapperImpl

我在OSGi捆绑包的普通Java项目中使用Mapstruct。我添加了一些基本代码:

package com.XXX.XXX.test;

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.Map;

@Mapper
public interface AccountPreferencesMapper {
    AccountPreferencesMapper MAPPER = Mappers.getMapper(AccountPreferencesMapper.class);

    @Mapping(expression = "java((String) r.get(\"defaultName\"))", target = "name")
    MappedAccountPreferences toMappedAccountPreferences(Map<String, Object> r);
}

package com.XXX.XXX.test;

public class MappedAccountPreferences {
    public String name;
}

当我构建软件包时,它将在以下位置生成实现:

目标/生成源/注释/AccountPreferencesMapperImpl.java

问题是,当我调用AccountPreferencesMapper.MAPPER时,无法获取它。它会说它为null或获取:无法初始化类com.XXX.XXX.test.AccountPreferencesMapper

我与以下代码位于同一个程序包中:

Map accountPreferencesMap = new HashMap<String, Object>();
accountPreferencesMap.put("defaultName", "User Name");
MappedAccountPreferences dto = AccountPreferencesMapper.MAPPER.toMappedAccountPreferences( accountPreferencesMap );

请注意,我必须使用以下代码编译代码:mvn clean install和mvn content-package:install(我没有使用任何编辑器进行构建)

我曾尝试在POM中添加mapstruct-jdk8 / mapstruct-processor作为单独的依赖项,如其他stackoverflow mapstruct类似问题中所述,但这是行不通的。

谢谢!

展开
收起
垚tutu 2019-11-28 18:43:18 1514 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载