天天看点

解决:mapStruct报错:java: Internal error in the mapping processor

作者:程序员不脱发2

背景

mapStruct的作用:

MapStruct是一个代码生成器,简化了不同的Java Bean之间映射的处理。 我们在写代码时经常涉及到VO、DTO、BO、DO之间实体的转换,有了mapStruct之后,可以让不同实体之间的转换变的简单。我们只需要按照约定的方式进行配置即可。

但是最近在使用mapStruct时,IDEA编译报如下错误:

java: Internal error in the mapping processor: java.lang.NullPointerException   
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:182)      
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.openManifest(DefaultVersionInformation.java:153)   
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getLibraryName(DefaultVersionInformation.java:129)     
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getCompiler(DefaultVersionInformation.java:122)    
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.fromProcessingEnvironment(DefaultVersionInformation.java:95)   
at org.mapstruct.ap.internal.processor.DefaultModelElementProcessorContext.<init>(DefaultModelElementProcessorContext.java:50)  
at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:218)   
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:156)     
at org.jetbrains.jps.javac.APIWrappers$ProcessorWrapper.process(APIWrappers.java:109)   
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)      
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    
at java.lang.reflect.Method.invoke(Method.java:498)     
at org.jetbrains.jps.javac.APIWrappers$1.invoke(APIWrappers.java:213)   
at org.mapstruct.ap.MappingProcessor.process(Unknown Source)    
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)     
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)  
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)    
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)    
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)     
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)     
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)     
at com.sun.tools.javac.main.Main.compile(Main.java:523)  
           

解决方案

直接上解决方案:

修改IDEA设置,

Setting -->Build,Execution,Deployment -->Compiler -->User-local build加上参数:

-Djps.track.ap.dependencies=false
解决:mapStruct报错:java: Internal error in the mapping processor

继续阅读