Intellij浏览多个maven项目

时间:2013-05-16 14:08:39

标签: maven intellij-idea

所以我的文件结构如下:

.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的jars作为maven依赖项,因此当我需要在app1,2或3中编辑某些东西时,这是一个痛苦的过程。如果我使用“跳转到声明”功能,它只会显示锁定的jar。是否可以进行设置,以便当我“跳转到声明”时,它会将我带到我可以编辑的实际代码中?

1 个答案:

答案 0 :(得分:4)

如果您有一个maven reactor build,它会为您设置所有模块。现在您只有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

来执行此操作

enter image description here

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

enter image description here

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

enter image description here

确定然后再次确定

enter image description here

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

如果app1app2app3之间也存在依赖关系,那么您必须为他们做同样的事情。

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