2016-04-25 108 views
1

项目 “孩子”,包含了Java类:调试Maven依赖

package org.child; 

public class Elaborate { 

    public String getStr() { 
    return "hello"; 
    } 
} 

这pom.xml的:

<?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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.child</groupId> 
    <artifactId>child</artifactId> 
    <version>1.0-SNAPSHOT</version> 


</project> 

项目 “父” 包含此Java类:

import org.child.Elaborate; 

public class App { 

    public static void main(String[] args) { 


    Elaborate elaborate = new Elaborate(); 

    System.out.println(elaborate.getStr()); 
    } 
} 

而这个pom.xml:

<?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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.parent</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 

    <dependency> 
     <groupId>org.child</groupId> 
     <artifactId>child</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 

    </dependencies> 

</project> 

我打开两个独立的Intellij窗口的两个项目。我试图做的是双方调试。

但是,如果我运行“父”的应用程序,我只能调试父。如果我在“孩子”中放置一个断点,调试器不会停在那里。

有关我该如何做的任何想法?

+0

使用依赖关系进行调试将需要源代码。我不知道IntelliJ,但我想这个过程是相同的。你需要告诉IntelliJ什么源文件对应'孩子',然后你将能够放置中断点。 –

+0

您是否尝试在同一个InteliJ中的同一工作区中打开2个项目?让IntelliJ maven插件来确定* child *模块是否是* parent *依赖项的来源。我想这就像在Eclipse – Laiv

+0

附加调试器图标,然后选择进程。 – Pomagranite

回答

0

我有同样的问题,因为你,我想:

我有多个Maven的包,这是分开的IntelliJ“模块”。

为了调试Maven的'依赖',将它作为'模块'加载到主IntelliJ'Project'窗口中。

文件>项目结构...>项目设置>模块

添加>导入模块

现在导航到你之前安装的Maven包,并选择该文件夹。

选择导入模块从外部模块>的Maven

并确保导入Maven项目自动选择。

您现在应该在项目的侧边栏中看到两个“模块”。在其中一个依赖模块中设置断点,然后运行>调试您的主模块,它应该按预期工作。