问题描述
我试图找到很多答案,但找不到任何按预期工作的答案。所以在这里发帖。它可能是重复的,但无法找到任何正确的答案。
让我们将 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
中。
我知道我可以使用 JAR
为 Project 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。