Intellij无法找到在依赖模块中进行的更改

时间:2018-10-12 01:43:45

标签: java maven intellij-idea

我有一个Maven项目,该项目依赖于其他Maven项目。我已经设法通过“项目结构”将那些依赖模块导入到我的项目中。能够mvn全新安装并能够运行该程序。同样在我的主项目中,如果要“命令单击”位于依赖模块中的文件,它将很好地转到该.java文件(而不是转到.class文件)。

但是当我运行程序时,在依赖项项目下进行的更改不会反映出来。重建或安装新的mvn并没有任何区别。

例如,我尝试仅在依赖模块中的类中添加新的变量声明。当我运行程序并通过调试检查时,此变量甚至不存在。

在依赖模块内部的类中类似地创建了整个方法。 该方法也不存在。当我将鼠标悬停在此方法下的断点上时,出现以下消息:

  

在com.name类的第112行找不到可执行代码。...

可能有用的信息。

该项目运行正常,而无需添加这些依赖项cos,它们作为该项目的一部分以jar文件形式存在。由于需要更改这些依赖项,因此我通过“项目结构”删除了这些jar文件,而是通过“项目结构”将这些依赖项导入为模块。

如上所述,这是有效的。我能够构建和启动该应用程序。当我进行更改时,只是看不到更改。

另一个问题浮出水面,我再次不明白。在我对依赖项进行更改之前,有一个参数在我的主项目上不起​​作用(编译失败)。现在它在编译方面运行良好。但是,当我运行它时,在调试下我得到了正确的参数值,但是在下一步之后,它只是跳转到 InvocationTargetException 。在下面的代码更改中添加了简短的代码段。

// Under Main Project
someMethod(Doable do){
    // do something
}

DoSomething doSomething = null;
someMethod(doSomething); // compilation error unless I implement Doable

// Under dependency
// implement Doable is the change which compiles now
class DoSomething implements Doable{ 
    //implement something
}

添加了项目结构以供参考。 请指教。谢谢。

MyMainProject
    mvn_structure
    pom.xml
MainDependency
    SubDependency1 
        mvn_structure
        pom.xml
    SubDependency2
        mvn_structure
        pom.xml
    SubDependency3
        mvn_structure
        pom.xml
    pom.xml

1 个答案:

答案 0 :(得分:0)

您的项目依赖于Maven存储库中的依赖罐,而不依赖于依赖源代码(其他项目)。因此,为了使对其他项目的更改可用于您的项目,您需要首先构建其他项目,以便更新存储库中的其jar。只有这样,这些更改才可用于您的项目。