版本Maven插件:版本后找不到包:use-latest-versions

时间:2016-11-22 10:30:25

标签: java maven versions-maven-plugin

当我在我的Maven项目中使用以下命令执行 Versions Maven Plugin 插件时:

mvn versions:use-latest-versions

使用更新的依赖项更新pom.xml。

问题是某些库更新为新版本,因为不包含以前版本中使用的某些软件包,因此编译器会说 package not found 。有人知道如何自动避免吗?我的意思是,更新到我的代码中包含我正在使用的包和类的最新版本。

3 个答案:

答案 0 :(得分:2)

在我看来,没有简单的方法来确定哪个版本更新"保存"。

即使您检查所编译的所有类仍然存在,方法签名可能已更改。即使所有方法签名保持不变,行为也可能已更改,从而导致运行时异常等。

我知道检查版本更新的唯一合理方法是运行编译并运行所有测试用例。可以对可能的版本更新的所有组合执行此操作,但这将花费大量时间。

答案 1 :(得分:2)

该插件不会分析您的代码并相应地调整依赖项版本。

目标use-latest-versions的目标是将项目升级到项目依赖项的最新版本,并且由于您可能会遇到编译和部署问题。 一旦确定了问题,就需要解决所有问题,以便整个项目升级到最新版本的依赖项。

答案 2 :(得分:2)

  

问题是某些库已更新为新版本   不包含以前版本中使用的一些包   编译器说找不到包。有人知道如何避免   自动?我的意思是,更新到最新版本   我在代码中使用的包和类。

当然,这是不可能的。

更新依赖关系不是机会游戏 如果您需要拥有最新版本的依赖项,则不必担心此版本是否因为您需要而破坏或不破坏您的代码。
您更新库是因为您需要更新该版本。如果您不需要更新依赖项,请不要更新您的依赖项,但如果您需要这样做,您应该在必要时进行更新代码的工作。