为什么从Java 8升级到Java 17需要我使用maven-war-plugin?

  • 本文关键字:Java maven-war-plugin 8升 maven war
  • 更新时间 :
  • 英文 :


我正在将一个项目从Java 8升级到Java 17,并且我正在接收错误(在pom.xml文件中)"无法初始化类org.apache.maven.plugin.war.util. webappstructureserializer"。作为升级过程的一部分,我也更新了pom文件中的其他依赖项。我在其他堆栈溢出的帖子中看到,这可能意味着应该更新maven-war-plugin。问题是,我目前没有使用该插件。当我添加它时,它确实解决了这个问题,但我只是想知道为什么会这样。

我怀疑发生了以下情况。

当你构建WAR时,Maven WAR Plugin会被隐式调用(你可以在日志中看到)。

由于某些原因,该版本比最新可用版本老(可能是缓存问题,可能是父POM等)。通过显式设置Maven War Plugin的版本,这个问题就会消失。

在我的pom.xml中,我添加了下面的代码来修复这个错误。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.4.1-SNAPSHOT</version>
</plugin>

别忘了添加war依赖

<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.4.1-SNAPSHOT</version>
<type>maven-plugin</type>
</dependency>

最新更新