Java 编译 Error injecting: org.apache.maven.plugins.war.WarMojo 错误

在打包 war 文件的时候,得到错误信息:

V[WARNING] Error injecting: org.apache.maven.plugins.war.WarMojo
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/ErrorInjectingConstructor]: ExceptionInInitializerError
  at WarMojo.<init>(WarMojo.java:54)
  while locating WarMojo

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR

1 error

======================
Full classname legend:
======================
WarMojo:                     "org.apache.maven.plugins.war.WarMojo"
========================
End of classname legend:
========================


编译的时候提示上面的错误信息。

问题和解决

上面出现问题的原因是 Java 的 JDK 版本比较高,但是 maven-war-plugin 插件的版本用得比较低。

根据对 pom 文件的查看,我们使用的版本为 3.0.0,这个版本是在 2016 年发布的,到现在来说,实在是版本太低了。

随后我们升级到 3.3.0 后,问题就解决了。

在 Java 的代码编译过程中,很多插件的版本太老了,但是 JDK 比较新的话,通常会出现一些意想不到的问题,通常我们需要对项目使用的版本更新下即可。