3

所以我有一个看起来像这样的文件结构:

.git
.project
.classpath
app1
    pom.xml
    .classpath
    .project
    src
app2
    pom.xml
    .classpath
    .project
    src
app3
    pom.xml
    .classpath
    .project
    src
TheAppIWorkOn
    pom.xml
    .classpath
    .project
    src

TheAppIWorkOn 使用来自 app1、2 和 3 的 jar,它们是 maven 依赖项,因此当我需要在 app1、2 或 3 中编辑某些内容时,这是一个痛苦的过程。如果我使用“跳转到声明”功能,它只会显示锁定的 jar。是否可以设置它,以便当我“跳转到声明”时,它会将我带到我可以进行编辑的实际代码?

4

1 回答 1

4

如果您要构建一个 Maven 反应器,它会为您完成所有模块设置。现在你只有对 jar 文件的依赖,而 IntelliJ 无法知道你有依赖的模块。但是您可以通过指出模块依赖关系来帮助 IntelliJ,之后您将能够在项目中的所有类之间导航。

最好的方法是pom.xml在项目的根目录中创建一个。这个 pom 会将不同的模块放在一起,并定义构建顺序。当您想第一次打开项目时,只需将 IntelliJ 指向这个 pom 文件,所有依赖项都将被解析和设置,因此不同模块中的类之间的导航变得轻而易举。

根目录的示例 pom 文件:

<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.stackoverflow</groupId>
    <artifactId>Q16589702</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <name>${project.artifactId}-${project.version}</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <modules>
        <module>app1</module>
        <module>app2</module>
        <module>app3</module>
        <module>TheAppIWorkOn</module>
    </modules>

</project>

如果由于某种原因你不能这样做,那么你必须通知 IntelliJ 模块依赖关系。您可以通过打开Project Structure.

在此处输入图像描述

然后选择模块TheAppIWorkOn并按底部的加号并选择Module Dependency...

在此处输入图像描述

在那里你可以选择你想要的所有模块作为依赖项。

在此处输入图像描述

Ok,然后再按Ok一次。

在此处输入图像描述

现在您将能够在项目中的不同类之间导航。

如果app1,app2并且app3彼此之间也有依赖关系,那么您将不得不对它们执行相同的操作。

但最简单的方法肯定是在根项目目录中有一个 pom 文件,其中包含所有模块间依赖项。

于 2013-05-16T16:07:48.730 回答