如何在另一个 Maven 项目中添加一个 Maven 项目作为依赖项并对其进行实时更改而不是 JAR 依赖项

问题描述

我试图找到很多答案,但找不到任何按预期工作的答案。所以在这里发帖。它可能是重复的,但无法找到任何正确的答案。

让我们将 project A 视为我的 Maven 项目,将 Project B 视为 EclipseLink JAXB/Moxy代码。我正在为我的应用程序使用 Intellij IDE

我有一个 (My JAXB Project) Project A 正在使用 3rd 方库 Eclipselink Moxy (Project B),我相信 Project B 有一些问题,因为 Project A 没有按预期提供输出。我想debug Project B找到问题。

所以我已经为 Project B 下载了 source code from Github。现在,我想将此 Project B code 中的此 local 作为我的 maven dependency 包含在我的 Project A 中。

我知道我可以使用 JARProject B 创建 mvn clean install -Dskiptests 并将该 JAR 包含在我的 Project A 中,但我想做一些更改在 debug 期间。到目前为止,如果我对 Project B 进行任何更改,那么每次我需要创建 JAR 时。库文件非常庞大,而且有很多 modules and submodules,因此需要很多时间(大约 5-10 分钟)。此外,我无法在 class file 中编辑 JAR,因此需要再次编辑 Project B 的类文件以创建 JAR,然后再次将其添加project A。这是太多的任务和等待时间。

因此,我想知道如何直接从 Project B 添加 local,这样我就不必每次都创建 JAR 并对 project B 进行更改并在我运行 Project A 时直接查看更改。

从昨天开始我尝试了很多东西,但直到现在似乎都没有效果,所以想问问同样的问题。

简而言之,我想做的就是: 添加来自 local project 的依赖项,因此当我单击代码的源代码时,我可以从 class file 打开 local project,因为从 class file 打开 JAR不为我提供编辑选项。

解决方法

  • pom.xml 的主 Project B 中的版本更改为您的存储库中不存在的版本。
  • 使用 Project B 命令安装 install -U
  • Project B 中使用自定义版本的 Project A。您现在还可以在 Project A 的工作区中放置断点进行调试。
,

您可以在 Intellij 中创建一个多模块项目。

首先在 Intellij 中为项目 A 创建一个 maven 项目,然后您可以将项目 B 作为附加模块添加到同一项目中。

这样你也可以调试和热替换项目 B 的代码。

可以找到与添加模块相关的帮助here