【问题标题】:Can Intellij IDEA automatically replace Maven dependencies with module dependencies?Intellij IDEA 能否自动将 Maven 依赖替换为模块依赖?
【发布时间】:2015-01-10 08:13:53
【问题描述】:

我正在 Intellij IDEA 中处理一个 Java 项目,其中我们有很多内部、独立的 Maven 依赖项。 我将这些依赖项的源代码作为模块导入到我的 IDEA 项目中,但是当我在属于内部 Maven 依赖项(并且我还作为模块导入到我的项目中)我导航到 Maven 依赖项(jar)中类的反编译视图,而不是我作为模块导入的该类的源代码文件.

要解决这个问题,我需要执行以下操作:

  1. 在使用内部 Maven 依赖项的模块上打开模块设置
  2. 依赖项列表中查找并删除内部 Maven 模块
  3. 添加一个新的Module Dependency然后选择对应于内部Maven依赖的导入模块

有什么方法可以让 IDEA 自动解决这个问题,还是我必须一遍又一遍地执行这个手动过程?

【问题讨论】:

  • 我尝试按照以下答案中的说明创建一个新的空项目并将 Maven 项目 (A -> B) 作为 Maven 模块导入,从项目 A 开始,然后是 B。我尝试了相反的方法,先是 B,然后是 A,但没有成功。
  • 你找到解决方案了吗?
  • frant.hartm 的评论对我有用。我只需要用蓝色圆圈箭头重新导入所有 maven 项目。

标签: java maven intellij-idea


【解决方案1】:

我建议您在此示例中错误地使用了 intellij。如果您将 maven 依赖项称为 intellij 模块,它会感到困惑。

您应该:

  1. 将这些 maven 依赖项更改为 maven modules
  2. 从您的 maven 依赖项中删除这些 intellij 模块作为 intellij 模块和 set up your maven build so you can download the source

【讨论】:

  • 感谢您的建议,但这些建议都不能真正解决我的问题。 1.我指的内部依赖是各种项目使用的独立Maven项目(在我的问题中明确表示),因此将它们制作成我的主要Maven项目的Maven子模块是不可行的。 2. 这当然是一个选项,但这要求我们为所有内部依赖项发布源代码 jar,这可能并不总是可取的。
【解决方案2】:

假设您有一个 maven 模块 A,它具有模块 B 作为依赖项。 如果您将这两个模块导入到一个 IntelliJ 项目中,IntelliJ 将自动使用导入的模块 B 而不是存储库中的 maven 工件 - 但您必须将其作为 maven 模块导入。

如果您随后通过模块 A 的 IntelliJ 运行一些测试或应用程序,它将使用模块 B 中自己编译的类,而不是存储库中的 maven 工件,代码中的导航和其他一切都将按预期工作。

如果这不起作用,那么您应该报告一个错误。

【讨论】:

  • 这对我不起作用。它将使用 Maven 依赖项(jar)而不是模块 B。
【解决方案3】:

添加另一个 maven 项目(不是主项目的一部分)作为依赖项:

  1. 打开你的主项目
  2. 在 Maven 项目工具窗口中单击绿色 + 按钮并选择依赖项的 pom.xml
  3. 根据需要重复 2

来源: https://www.jetbrains.com/idea/help/maven-projects-tool-window.html?search=maven%20project

【讨论】:

  • 如果我选择了其他 Maven 项目的 pom.xml 文件,我无法选择确定按钮。
  • 这意味着您已经将该模块添加为依赖项,请尝试“重新导入所有 Maven 项目”(蓝色圆圈箭头),看看您是否可以在源代码中导航。如果它不起作用,请尝试从干净的项目开始(模块设置没有任何更改)。
  • 如果 maven dep 实际上是一个多模块 Gradle 项目(所以没有 pom.xml 文件)怎么办?似乎我通过将该 Gradle 项目的根作为模块添加到项目中取得了一些进展,然后添加为我想要使用的 maven 项目的模块依赖项模块,即 gradle 子模块我希望它依赖。
猜你喜欢
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多