如何在Intellij中调试项目同时在另一个项目中设置断点

Ben*_*Ben 5 debugging intellij-idea

我在Intellij中加载了一个(基于Maven的)项目A,该项目具有许多依赖性。

我在另一个Intellij项目中具有其中一个依赖项(例如B)的源文件。

我想在B中放置断点并调试项目A,以便在项目B中达到断点时A停止。

在Eclipse中,我只需要将两个项目都放在同一个工作空间中即可工作。由于Intellij中没有工作区,所以我想知道如何做以及是否可行。

TT-*_*T-- 5

其他答案听起来像是可行的,但我所要做的就是去:

项目结构( Ctrl+++ )AltShiftS

> 模块

> 在具有依赖项的模块的“源”选项卡上,查看右侧,

单击+ Add Content Root,然后添加src依赖项目的文件夹。

然后,我可以在这些src文件中放置断点,IntelliJ 将在调试时逐步执行它们。

(注意您可能会看到警告“ Alternative source available for the class ...”)


参考

来自https://www.jetbrains.com/help/idea/creating-and-managing-modules.html

“模块通常有一个内容根。您可以添加更多内容根。例如,如果您的代码片段存储在计算机上的不同位置,这可能会很有用。”


Han*_*k D 3

当处理多个 Maven 项目时,我发现将它们放在父 Maven 项目下很方便。两个子项目不知道父项目并保持彼此独立,但通过将它们聚合到一个父 pom 上,您可以方便地同时构建和测试它们,使依赖项与其依赖项保持同步。执行此操作时,您还可以为每个项目创建运行配置,在调试模式下启动它们,并在其中一个或两个中放置断点。

父 pom 保留在两个项目的父文件夹中,并且不需要进入源代码管理,因为子 pom 不会将其称为其父级 - 这只是为了方便您同时处理两个项目。这样的 pom 可能看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>anything</groupId>
    <artifactId>anything</artifactId>
    <version>0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>All projects</name>
    <modules>
        <module>project-1-subdirectory</module>
        <module>project-2-subdirectory</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

  • 我认为按照 @Hank D 的建议将项目 A 和 B 作为同一父项目的模块有点麻烦,因为它偏离了多模块 Maven 项目的最初目的。此外,如果 A 或 B 已经有父项目怎么办?我添加了另一个通用答案,适用于 Maven 和 gradle 项目。 (2认同)