天天看點

解決: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

繼續閱讀