我们在Maven中构建了多个项目(将它们命名为A,B,C)。项目A使用项目B的.jar,而项目B使用项目C的.jar。

我正在修改所有A / B / C项目的代码,(A是MVC应用,B是业务服务,C是一些共享层)。

问题是,在Eclipse / NetBeans中,我可以一次看到所有它们,并且可以轻松修改它们。但是在IDEA中,我必须打开IntelliJ IDEA的3个实例(或n个实例)。

我缺少什么吗?使用IntelliJ时有更好的方法吗?对我来说,这是IntelliJ最大的缺点。

评论

纵观迄今为止的答案,我看到的基本要点是IntelliJ将Eclipse称为“项目”的模块定义为“项目”,将“工作区”的项目定义为项目。这样做的目的是确保同一项目中的模块相互关联。因此,如果项目A依赖于项目B,但两者都与项目C完全无关,则最好在同一IntelliJ项目中将项目A和B作为模块打开,而在另一个IntelliJ实例中的单独项目中打开C。您可以同意或不同意该设计,但是(假设我已经正确地抓住了这个想法)我很欣赏它背后的想法。

#1 楼

是的,你的直觉很好。您不应该使用intellij的三个实例。您可以打开一个项目,然后将应用程序的其他“部分”添加为模块。通过项目浏览器添加它们,默认热键为alt + 1

评论


我在做同样的事情:导入主项目,然后使用“导入模块”导入我的第二个项目,但是后来-我得到了“这些模块已从Maven结构中删除:...是否要删除它们也是这个项目的?” -然后我按“否”。但是此对话框出现了很多次。我能做什么?

– nnhthuan
2014-09-25 1:46



下面更好的答案

– redDevil
15年1月19日在8:51

@redDevil是哪一个?

– Piotr Findeisen
16年11月15日在5:20

@redDevil不!这个答案比较笼统,如果您有非Maven项目,那么这个答案会更好,因为获得最高投票的答案根本没有涵盖它们。这两个答案针对不同的情况,并且具有同等的相关性,没有一个比另一个更好。

–luk2302
17年7月13日在7:48

这比“仅Maven”答案更好,但是如果您有想要同时可见的不相关项目(例如,易于访问以引用其他项目的代码),或者如果您支持依赖于以下内容的库,则该方法无济于事您关注的项目。我非常沮丧IJ在这里没有使用Eclipse / NetBeans模型,这是阻止我切换到IJ的主要原因。

– Manius
19年1月26日在17:48

#2 楼

我认为这与IntelliJ的最新版本有所改善。在我当前的版本(12.0.2)中,您可以将任意数量的单独的Maven项目添加到同一“工作区”。

我发现最简单的方法是单击“ Maven项目”窗口中的+小图标(“视图”>“工具窗口”>“ Maven项目”),然后选择所需的其他pom文件导入。

评论


只是要添加:添加Maven项目后,如果它是本地项目,它将加载到“项目”面板中。

–阿拉姆·科恰良(Aram Kocharyan)
2014年1月4日,12:14

如果这些项目位于不同的git存储库中,则可以在设置(“设置”>“版本控制”>“ Git”)中选中“同步控制存储库”。 IntelliJ将在多个项目上保持推送,更新和分支选择同步。

– Tim Van Laer
15年7月13日在15:25

对于那些是IntelliJ的新手,并且不知道“ Maven项目”窗口在哪里:右上角。

–dustin.schultz
16 Mar 8 '16 at 22:55

与2017版本不同的是,请参考jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html

– vikramvi
17年5月29日在9:58

因此,如果您需要打开多个项目,但是它们是Gradle或Ant项目,那么您仍然很不幸。不用了,谢谢。我需要能够全部打开3个窗口,例如NetBeans和Eclipse allow。缺少合适的工作空间是我仍然不使用IJ的第一原因。

– Manius
19年1月23日在6:44

#3 楼

步骤1:打开“ Maven项目”

步骤2:选择要导入的项目:


评论


一张图片胜过千言万语。

– Neeraj Jain
'18 Sep 11'在10:11

谢谢,这真的很有用

– J.亚当
19年2月12日在19:15

这个答案对我很有帮助,尤其是在使用屏幕截图时。谢谢。

–CA Arefe
19年5月3日,9:07

这是我正在寻找的答案。非常感谢 :)

–杰林·库里安(Jerin Kurian)
19年5月30日在21:24

我的实例中没有该选项:2019.3社区

– Marinos An
19/12/10在13:12

#4 楼

前提条件
将所有相关项目都放在同一个根目录中。
步骤
1)首先,创建一个新的Empty项目



2)然后选择所有项目的根目录。
这将创建一个空项目,其中带有.idea目录,该目录将简单地记住下一步要做的模块组织


3)然后,在下一个窗口中,将不同的项目作为模块导入


4)在下一个窗口中,要导入每个项目,只需双击build.gradle或pom.xml

该项目将作为新模块导入。


5)完成,现在将您的所有项目作为模块,在同一IntelliJ项目上打开


评论


这是对该问题的确切正确答案。首先,创建并清空项目,然后添加现有项目。谢谢。

–hrzafer
17-3-3在16:51



您有解决方案。但是您的“前提条件是所有相关项目都在同一根目录中”。不需要。我尝试了Maven项目,它与Intelllij版本2017.3。兼容。我还没有尝试使用intellij标准模块。

–Gauthier果皮
18-2-28在18:52

确切的解决方案!

– Satheesh
18年7月5日在8:35

最佳答案。谢谢 :)

– AnarchoEnte
18-10-26在5:16

为我使用了Intellij Idea 2018.3和Gradle。

–收入
19年3月11日在9:35

#5 楼

在IntelliJ 14.1.2中,我这样做如下:

选择File-> Project Structure-> Modules

选择+Import Module并选择项目目录(或pom存在的目录),然后单击“确定”。

按照下一个屏幕流程,单击Finish后,您应该在现有项目旁边看到该项目。



评论


无法添加这样的模块。无法从C:/ Projects /导入任何内容

–曾经的阿莲
2015年9月17日在3:33



@everalian,您在C:/ Projects或其他地方是否拥有pom.xml?

– Neo
2015年9月26日23:39

不,我没有pom.xml文件。因为我使用Gradle构建。

–曾经的阿莲
2015年9月30日,下午3:24

这应该是公认的解决方案。并非所有项目都使用Maven。

–巴本·瓦尔达扬(Babken Vardanyan)
17年6月14日在9:30

#6 楼

没有任何解决方案对我有用,因为我不在从事Maven项目。有一个更简单的解决方案。转到:

文件->项目结构->模块。



除了添加模块,只需单击第三个选项(复制) 。浏览您的本地目录,然后选择要添加的项目。模块名称将自动解析。就是这样。

更新:当您要重新打开以包含多个子项目的项目时,为了避免如上所述重复执行步骤,只需转到
File-> Open Latest ->“您的大项目”。

评论


是的...哦是的....这是我正在寻找的解决方案。导入为Maven模块或项目不会生成.idea和xxx.iml文件。这可能会导致apache tile出现问题。我正在使用2018.1.5版本。非常非常感谢你。

–大灾变
18年6月23日在20:28

这真太了不起了!唯一的缺点是仅将IDE用作编辑器,并且仍必须导航到正确的文件夹才能进行编译和运行。任何人都可以通过简单的方法将此解决方案用于多个文件夹(复制的模块),并且仍然可以在编辑器中编译和运行?

–格雷格·希尔斯顿(Greg Hilston)
19年9月8日19:20在

停止环顾四周,并遵循此步骤。这是该问题的正确答案。

–林肯
10月23日23:07

#7 楼

若要展开@Neo答案:
,请选择目录。选择import module from external model并选择您的模型(在这种情况下为maven)。



,然后从下一个对话框中检查keep project files选项。它将所有文件保留在原始目录中。



您的最终项目结构将是这样。



现在,您可以将模块作为依赖项添加到其他模块的pom.xml中,如果您更改了依赖项的源代码,Intellij会负责更新项目(无需手动运行mvn建立依赖关系)

#8 楼


新的空项目
文件->新建->现有来源的模块


#9 楼

您可以使用Armory插件,使项目之间的切换变得舒适。项目列表的默认快捷方式是Alt +A。



默认情况下,当前打开的项目显示在该列表的顶部(以粗体显示)。 >

#10 楼

打开首选项->外观和行为->系统设置->选择(在新窗口中打开项目),然后应用。

然后您可以打开和编辑多个项目。

评论


这正是OP试图避免的事情。他希望它们在同一个窗口中,同时完成所有三个项目。

–西蒙·福斯伯格
17年8月4日在7:37

#11 楼

对于使用Gradle的用户,也可以使用以下方法:





转到:
1。查看->工具窗口-> Gradle
2。单击+按钮并添加您的build.gradle文件

评论


您正在使用社区版还是终极版?我是Intellij的新手,只有CE(2019.3.3)。该菜单中没有Gradle。

–麦克·啮齿动物
3月7日17:13

#12 楼

在将打开“项目结构”的窗口上按“ F4”,然后单击“ +”图标或“ Alt +插入”以选择要导入的新项目。然后单击“确定”按钮...

评论


感谢您的钥匙。如果您忘记添加@ThisIsFlorianK的答案,这将很有帮助!

– Satheesh
18年7月5日在8:37

#13 楼

使用按钮添加Maven项目,然后进入项目文件夹。然后,选择pom.xml文件并将其添加到IntelliJ中。



#14 楼

对于Intellij IDEA 2019.2,F4 +单击模块,单击+以从硬盘中添加任何项目,在此菜单上方,您可以在创建项目时编辑IDE和更多选项,非常简单

#15 楼

对于不使用maven进行构建并想要添加新项目的人(我正在使用intellij 14.1.3):


在项目视图中右键单击顶层文件夹,选择new- >
模块
为模块命名,名称与要添加的项目相同。
从顶部菜单中选择File-> New-> Project。输入与
新模块相同的名称,以及相同的文件夹位置。
打开项目,并等待intellij创建项目
结构。
关闭此新项目,并打开在步骤2中添加了模块的原始项目。

根据您的构建器,需要其他步骤才能将其添加到构建过程中。

对于SBT,在顶层项目中,我修改了Build.scala文件以聚合新项目,并将该项目添加到SBT项目窗口中。有关SBT多项目构建的更多信息:http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html

评论


IntelliJ增加了对将sbt模块添加到项目中的支持​​,并且运行得非常好,但是自2017年以来似乎已被打破。您仍然可以添加多个sbt模块,但是当您刷新时,最终会丢失一个模块。

– Nader Ghanbari
18年11月25日21:00

#16 楼

您可以使用导入模块选项,就像在同一导航器中的Eclipse一样打开它。

评论


它说无法打开.ipr进入项目

–曾经的阿莲
2015年9月17日下午2:26

#17 楼

我是maven的新手,不了解如何使用通过Viktor Nordling的答案添加的本地maven项目,并且仍然对pom.xml文件具有适当的依赖性。答案很简单:intellij首先查看您本地添加的模块,如果找不到,则可以远程获取项目。添加或删除Maven模块时,可以通过在项目浏览器下查看“外部库”来进行检查。

希望对任何人都有帮助。

#18 楼

从2019.2版本开始,这就像File-> Attach Project一样容易。

🎉🎉🎉🎉🎉



请参阅:https: //youtrack.jetbrains.com/issue/WEB-7968

评论


您正在使用社区版还是终极版?我是Intellij的新手,只有CE(2019.3.3)。该菜单中没有附加项目。

–麦克·啮齿动物
3月7日17:14

AFAICT这是PhpStorm的特定功能:jetbrains.com/help/phpstorm/…

–伊凡·韦吉里耶夫(Ivan Vergiliev)
11月2日9:39

#19 楼

无需将整个项目移至一个模块。模块的用例比作为项目容器的粒度要细一些。

要在同一窗口中打开多个项目:

文件->打开项目

选择在此窗口中打开。

显示添加到当前项目的复选框。

评论


不工作。它将当前打开的项目替换到同一窗口。

–曾经的阿莲
2015年9月17日下午2:21

@everalian不幸的是,此功能已删除。

– BAR
2015年9月17日下午13:18