maven - 为什么刷新 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 的罐子——它有道理,但它只是有一些旧垃圾。在这样的构筑下是否有一些深刻的思考?
解决方案
推荐阅读
- .net-core - 如何停止在 .NET Core 中发布 FxCop 库
- visual-studio-code - 如何在Rubymine上设置JS代码的输出
- javascript - Joi 只要值为字符串,如何允许未知属性
- android - Android - Google Maps Api 无法更改默认背景颜色
- hyperledger-fabric - 当使用 configtxgen 创建创世和交易时,我们是否需要使用密钥对
- android - RecyclerView Adapter 在更新不同的 observable 时改变列表
- c++ - 如何通过“初始化列表”初始化 C++ 派生结构?
- c# - 如何从 Azure Blob 存储中的 Hadoop AvroContainer 中删除记录?
- angular - 如何以角度访问和操作表单数据以在 Firebase 数据库中创建条目
- go - Golang 使用错误的 url @ Go 1.13 使用 git ls-remote -q 失败