所以我的文件结构如下:
.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。是否可以进行设置,以便当我“跳转到声明”时,它会将我带到我可以编辑的实际代码中?
答案 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
。
然后选择模块TheAppIWorkOn
并按下底部的加号并选择Module Dependency...
。
在那里,您可以选择您想要拥有的所有模块作为依赖项。
按确定然后再次确定。
现在,您将能够在项目中的不同类之间导航。
如果app1
,app2
和app3
之间也存在依赖关系,那么您必须为他们做同样的事情。
但最简单的方法是在根项目目录中有一个pom文件,其中包含所有的模块间依赖关系。