我在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类似问题中所述,但这是行不通的。
谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。