当前位置: 首页 > 知识库问答 >
问题:

如何列出所有与Maven不兼容的依赖版本?

耿学义
2023-03-14

我正在从1.6升级到1.8的过程中。

因此,我正在寻找一种列出所有不兼容Java1.8的依赖项的好方法。我已经设置了JAVA_HOME。我使用的是Maven 3.3.9。

mvn dependancy:compatabilityTest
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11:41:47-05:00)
Maven home: C:\Data\apps\apache-maven-3.3.9\bin\..
Java version: 1.8.0_112, vendor: Oracle Corporation
Java home: C:\Program Files (x86)\Java\jdk1.8.0_112\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "x86", family: "dos"

共有1个答案

宓英哲
2023-03-14

“failed to transform class with name”很可能表示正在使用字节代码生成或转换。没有办法静态地确定这一点,因为在程序运行之前,类并不以它将被加载的形式存在。

Java8为字节码添加了一些验证功能,这在旧版本中是没有的。这意味着在Java5.0中生成的无效字节代码可能没有失败,但现在失败了。解决方案是升级字节码生成器的版本,很可能升级使用它的库。

 类似资料:
  • 问题内容: 我使用Maven开发和构建了Java应用程序。我需要支持Java 1.6,因此我使用以下属性: 尽管如此,当我运行该应用程序时,仍然出现“不受支持的major.minor版本”错误,并且我怀疑我的一个依赖罐是使用比我需要支持的Java版本更新的Java版本进行编译的。 我的问题: 这有可能吗?我以为Maven会解决这种依赖版本问题。 有没有一种简单的方法来找出我所有依赖项的次要/主要版

  • 问题内容: 最近,我一直在研究前一段时间开发的项目中的一些改进,这就是我所发现的。pom文件中的许多依赖项都没有指定版本,但是已经解决了。该项目包含1个根模块和2个子模块。使用了Aggregator模式,这意味着根本没有dependencyManagement部分。上层项目仅聚合了2个模块,仅此而已。子项目并不将其称为父项。他们有不同的父母。我无法理解的是,子项目本身或它们的父项(事实上,它也没有

  • MVNRepository通常为每个依赖项列出“版本”和“更新”。 如果我发布自己的包,如何指定“更新”版本 Maven在解决传递依赖时使用了哪个依赖项?所以如果我的包依赖于包A,它依赖于包B,版本=1.0,更新=1.1。我会得到哪个版本的B?

  • 我正试图用maven在java 9中构建一个使用依赖关系的演示项目: 然而,当我运行jar工具来确定要在项目的模块信息中使用的自动模块名称时。java I出现以下错误: 似乎自动模块算法不能为这个jar提供一个有效的java名称。如果不添加适当的requires,我会得到spark mllib中缺少的包的编译错误,例如: 在我的项目中添加正式的保留模块名或其自己的模块信息之前,我是否可以使用此依赖

  • 我必须在一个需要运行Java6的旧项目中工作,因为在未来的版本中,已经删除了对贬值的sun类的引用。作为过程的一部分,我将系统路径中的jdk从8更改为指向Java6JDK。这样做后,我得到: 这类似于 Maven 安装 OSX 错误 不支持的主要.次要版本 51.0 和线程“主要” java.lang.不受支持的类版本中的异常错误: a (不支持的主要.minor 版本 51.0) 但是我不打算升

  • 问题内容: 如果我在应用程序根目录中定义了package.json文件并运行,它将自动安装package.json中定义的所有依赖项。 但是,这似乎并非相反。 如果我在应用程序根目录中执行此操作,则会引发错误,使我无法通过它传递程序包名称。 这还不应该卸载与我安装的相同的软件包吗? 难道我做错了什么? 问题答案: 如果使用Bash,只需切换到包含package.json文件的文件夹,然后运行以下命