Intellij Idea java.lang.NullPointerException:无法调用“java.net.URL.toExternalForm()”,因为org.mapstruct中的“resource”为空

zbsbpyhn  于 2023-11-16  发布在  Java
关注(0)|答案(5)|浏览(330)

使用Idea进行mvn编译工作正常。
在应用程序主启动期间失败。
在Ubuntu上的其他PC上的旧想法上工作得很好。
环境变量:

  • Intellij 2020.3.2作为管理员;
  • Java语言15.02;
  • Windows 10 x64;
  • 最新Map结构。

如何解决这个问题?

  1. D:\back\src\main\java\io\x\mapper\Mapper.java:15:8 java: Internal error in the mapping processor: java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "resource" is null
  2. at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:182)
  3. at org.mapstruct.ap.internal.processor.DefaultVersionInformation.openManifest(DefaultVersionInformation.java:153)
  4. at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getLibraryName(DefaultVersionInformation.java:129)
  5. at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getCompiler(DefaultVersionInformation.java:122)
  6. at org.mapstruct.ap.internal.processor.DefaultVersionInformation.fromProcessingEnvironment(DefaultVersionInformation.java:95)
  7. at org.mapstruct.ap.internal.processor.DefaultModelElementProcessorContext.<init>(DefaultModelElementProcessorContext.java:50)
  8. at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:218)
  9. at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:156)
  10. at jdk.internal.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)
  11. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  12. at java.base/java.lang.reflect.Method.invoke(Method.java:564)
  13. at org.jetbrains.jps.javac.APIWrappers$1.invoke(APIWrappers.java:248)
  14. at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.process(Unknown Source)
  15. at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1025)
  16. at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:940)
  17. at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1269)
  18. at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1383)
  19. at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1261)
  20. at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:935)
  21. at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
  22. at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
  23. at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
  24. at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
  25. at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:231)
  26. at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:501)
  27. at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:353)
  28. at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:277)
  29. at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:231)
  30. at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1441)
  31. at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1100)
  32. at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1224)
  33. at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1066)
  34. at org.jetbrains.jps.incremental.IncProjectBuilder.access$1200(IncProjectBuilder.java:67)
  35. at org.jetbrains.jps.incremental.IncProjectBuilder$BuildParallelizer$1.run(IncProjectBuilder.java:1006)
  36. at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216)
  37. at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
  38. at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
  39. at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:208)
  40. at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184)
  41. at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
  42. at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
  43. at java.base/java.lang.Thread.run(Thread.java:832)

字符串

swvgeqrz

swvgeqrz1#

在您的Intellij IDEA中:

  1. File | Settings | Build, Execution, Deployment | Compiler | user-local build process vm options

字符串
设置此值:

  1. -Djps.track.ap.dependencies=false

4sup72z8

4sup72z82#

我在Intellij 20.3.2中遇到了MapStruct的问题。错误 * Map处理器中的内部错误:java.lang.NullPointerException:Cannot invoke“java.net.URL.toExternalForm()”,因为“resource”为null[...]。* 我做了一点研究,发现只需更改pom. xml中的版本就足够了。在文档网站上,我们可以看到包安装配置:https:**//mapstruct.org/documentation/installation/**在以下摘录中仍然存在错误:

  1. <groupId>org.mapstruct</groupId>
  2. <artifactId>mapstruct</artifactId>
  3. <version>**${org.mapstruct.version}**</version>

字符串
最后,在1.4.2.Final中放置以下版本,应用程序可以顺利运行。

n3h0vuf2

n3h0vuf23#

请更新到当前IDE和MapStruct版本。此问题已在很久以前修复。
另请参见this answer了解解决方法。

y4ekin9u

y4ekin9u4#

请更新newVersionMap结构

  1. <dependency>
  2. <groupId>org.mapstruct</groupId>
  3. <artifactId>mapstruct</artifactId>
  4. <version>1.4.2.Final</version>
  5. </dependency>

字符串

p5fdfcr1

p5fdfcr15#

确保你使用的是相同版本的mapstruct和mapstruct-processor:

  1. <dependency>
  2. <groupId>org.mapstruct</groupId>
  3. <artifactId>mapstruct-processor</artifactId>
  4. <version>1.5.3.Final</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.mapstruct</groupId>
  8. <artifactId>mapstruct</artifactId>
  9. <version>1.5.3.Final</version>
  10. </dependency>

字符串

相关问题