【问题标题】:Intellij can't resolve transitive dependenciesIntellij 无法解决传递依赖
【发布时间】:2019-09-18 23:09:01
【问题描述】:

我有一个奇怪的问题,mvn clean install -Dproject.version=1jenkins 构建正常,但是当我在 IDE 中打开模块时,intellij 是红色和愤怒,这会影响开发。

我在 intellij 日志中看到以下问题

> 的 POM 无效,传递依赖(如果有) 将不可用,请启用调试日志以获取更多详细信息

代码受版权保护,因此不能透露,但这里是一个基本大纲

  • fabric-common : 基本模块(用于绑定整个项目的通用结构,包含所有客户端和数据库模块)- 我们称之为 FC
  • 实用程序:有问题的模块(imports FC)并使用数据库模块 - 让我们调用实用程序U

现在U全是红色的,因为它找不到db的DAO,如果Us POM明确包含db模块,每个人都很高兴。

intellij 上的Auto-Import 已启用,maven3 上正在进行导入,并且本地存储库也全部更新为正确的版本。

这是known issue 还是有任何帮助?

Intellij 详细信息

编辑

建议的问题 as duplicatemaven 无法解决依赖关系的特定问题,但在我的情况下,maven 从命令行或 jenkins 构建很好,但 IDE 失败。

【问题讨论】:

标签: java macos maven intellij-idea java-8


【解决方案1】:

你可以试试

  • 使缓存失效并重新启动
  • 删除.iml.ipr文件
  • 清理Project structure(如果我没记错的话)库或工件。只需删除它们,它们就会通过 Maven 更新。
  • 运行 mvn idea:idea

以任意顺序。我不记得是哪一个了,但我会把赌注押在.ipr/.iml,清理Project structureInvalidate restart

编辑

这是有效的


在我们开始执行此操作之前确保 intellij 已打开(需要在步骤 3 中使缓存无效)并且您已将 maven3 设置为主目录(Preferences -> Build, Execution, Deploymnet -> Maven : Maven Home directory

删除所有iml、ipr、iws

cd <parent dir of project>
find project/ -type f -name "*iml*" -exec rm {} \;
find project/ -type f -name "*ipr*" -exec rm {} \;
find project/ -type f -name "*iws*" -exec rm {} \;

删除本地仓库

   cd ~/.m2
   mv repository* ~/Desktop/

:: 关闭intellij项目窗口(不是intellij,只是项目窗口)

:: 使缓存无效并重新启动(这将关闭 intellij 并以空白屏幕重新启动)

:: 一旦 intellij 打开,通过选择项目级别的 POM 打开项目(这将重新导入本地的所有依赖项 - 我们在步骤 4 中删除了一个)

cd < project path >

:: 运行(如果可能,在 intellij 终端中运行 - 在这里迷信 ?) - 这将更新本地 intellij:

mvn -U idea:idea -Dproject.version=1.0

:: 右键点击具体项目的pom.xml,Maven -&gt; Reimport

【讨论】:

    猜你喜欢
    • 2012-12-17
    • 2016-03-10
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2021-03-24
    • 2017-02-15
    • 1970-01-01
    • 2013-02-12
    相关资源
    最近更新 更多