IDEA配置JDK、Maven 常见错误总结

IDEA配置JDK、Maven 常见错误总结今天开始分享,新的项目要求更高版本的配置,比如要求JDK版本为11,或者新下载的项目JDK版本为11,而自己本地环境的是1.8版本的,依次需要升级版本到11。

1、问题产生的原因分析,启动新下载的项目时报错如下:

Error:(49, 86) java: 无法推断com.fasterxml.jackson.core.type.TypeReference<T>的类型参数
  原因: -source 8 中不支持 '<>' 具有匿名的内部类
    (请使用 -source 9 或更高版本以启用 '<>' 具有匿名的内部类)

显然我IDEA上配置的JDK版本8 比较低,至少应该是9。其实点击红色代码出可以在pom文件自动导入以下配置也可以临时解决:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>9</source>
          <target>9</target>
        </configuration>
      </plugin>

常用考虑,根据团队需求我安装了JDK11,但是发现还是报同样的错误,于是我就怀疑Maven版本不对。

2、排查解决,查阅版本关系然后和同事确认了一下,团队Maven版本为3.8.6,而我的本地配置的是3.3.9,显然低了很多,于是我下载安装了3.8.6版本的Maven,各种配置统一之后,有爆出新的错误,点击看到IDEA的日志:

2022-08-29 18:45:21,044 [34871123]  ERROR -      #org.jetbrains.idea.maven - IntelliJ IDEA 2020.1.2  Build #IU-201.7846.76 
2022-08-29 18:45:21,044 [34871123]  ERROR -      #org.jetbrains.idea.maven - JDK: 11.0.7; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 
2022-08-29 18:45:21,044 [34871123]  ERROR -      #org.jetbrains.idea.maven - OS: Windows 10 
2022-08-29 18:45:21,048 [34871127]  ERROR -      #org.jetbrains.idea.maven - Last Action: Maven.Reimport 
2022-08-29 18:45:25,492 [34875571]  ERROR -      #org.jetbrains.idea.maven - java.lang.RuntimeException: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void <init>()' not found
  at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(Unknown Source)
  while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidator
  at ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value="ide")

1 error
      role: org.apache.maven.model.validation.ModelValidator
  roleHint: ide 
java.lang.RuntimeException: java.lang.RuntimeException: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void <init>()' not found
  at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(Unknown Source)
  while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidator
  at ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value="ide")

1 error
      role: org.apache.maven.model.validation.ModelValidator
  roleHint: ide
	at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.getComponent(Maven3XServerEmbedder.java:489)
	at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customizeComponents(Maven3XServerEmbedder.java:578)
	at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customize(Maven3XServerEmbedder.java:546)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

显然发现maven版本和idea版本不匹配,经查阅,idea2020.1使用maven3.8.6会出现报错情况,换成3.6.3即可,于是下载安装3.6.3,统一配置后,以上两个问题迎刃而解,即pom文件不需要新加关于JDK9的配置,同时都兼容,即JDK11,Maven3.6.3,Idea 为2020版本。

3、如果还有问题,可以在maven的setting.xml 文件里添加配置试试,比如JDK11

		<profile>    
		  <id>jdk-11</id>    
		  <activation>    
			<activeByDefault>true</activeByDefault>    
		  <jdk>11</jdk>    
		  </activation>    
		  <properties>    
			<maven.compiler.source>11</maven.compiler.source>    
			<maven.compiler.target>11</maven.compiler.target>    
			<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>    
		  </properties>    
		</profile> 

JDK1.8 配置:

<profile>     
    <id>jdk-1.8</id>   
    <activation>        
          <activeByDefault>true</activeByDefault>    
          <jdk>1.8</jdk>      
     </activation>  
     <properties>  
          <maven.compiler.source>1.8</maven.compiler.source> 
          <maven.compiler.target>1.8</maven.compiler.target> 
          <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>   
     </properties>
     </profile>

到此、暂时告一段落!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值