首页 > 解决方案 > 为什么刷新 Maven 存储库对于 IntelliJ 来说还不够?

问题描述

我在一些测试中遇到了 NoClassDefFoundError 问题,从 IntelliJ 启动。为了修复这种情况,我不得不在项目的许多 pom 中进行一些更改 - 添加新包并排除一些旧包以避免它们的重叠。另外,我用不同的版本恢复了这种情况。但情况并没有好转。再一次,在 pom 中声明的某些包在它应该在的地方找不到。

我通过以下方式刷新了 Maven 存储库

mvn -e clean install -U

,正如https://stackoverflow.com/a/9697970/715269中所建议的那样- 如此古老且被赞成的答案,它肯定看起来像圣诞老人。

问题没有改变。

我输出了 Maven 地图。它是正确的,它包含了所有需要的东西。

我查看External Libraries了项目的列表。这是旧的未更正的重叠 jar 列表,具有相同的名称和不同的版本,并且没有我刚刚添加的好的包,并且在 maven 树输出中很明显!

已经倒霉了,

我在 IntelliJ 中重新导入了包

经过:
Ctrl+Shift+A, Reimport All Maven Projects.

嗬!库列表已修复。主题中提到的问题消失了。

问题是:它怎么会发生,同一个项目对所有东西都有这样的 pom,但是在 maven 和 IntelliJ 中以不同的方式启动包?

我知道该功能“将 IDE 构建委托给 Maven”。我一直把它关掉。但我不是在谈论用于构建的不同软件。无论它们是否不同,它们都应该取决于实际的 pom。虽然 maven,如果从自动构建中关闭,则不会知道 poms 的变化,而 IntelliJ 知道它们。它可以有 pom 或 maven 的罐子——它有道理,但它只是有一些旧垃圾。在这样的构筑下是否有一些深刻的思考?

标签: mavenintellij-ideabuildpackagepom.xml

解决方案



推荐阅读