【问题标题】:IntelliJ: Working on multiple projectsIntelliJ:从事多个项目
【发布时间】:2012-02-05 03:18:50
【问题描述】:

我们在 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。你可以同意或不同意这个设计,但是(假设我正确地理解了这个想法)我尊重它背后的想法。

标签: intellij-idea


【解决方案1】:

先决条件

将所有相关项目放在相同根目录中 会有所帮助。

步骤

1) 首先创建一个新的空项目


2) 然后选择所有项目的根目录。

这将创建一个空项目,其中包含一个 .idea 目录,该目录将简单地记住我们将在下一步中执行的模块组织


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


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

项目将作为新模块导入。


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

【讨论】:

  • 你有解决方案。但是您的“先决条件”将所有相关项目都放在同一个根目录中。不需要。我尝试了 maven 项目,它适用于 Intelllij 版本 2017.3。不过,我还没有尝试过使用 intellij 标准模块。
  • 这是我为 Maven、Gradle 和 SBT 项目所做的工作。添加多个 SBT 项目似乎已经中断了一年多。您仍然可以添加,但是当您在 sbt 面板中刷新 SBT 项目时,它们会变得混乱。
  • 你知道这个与模块一起添加的maven-archiver项目是什么吗?
  • 使用 Intellij Idea 2018.3 和 Gradle 为我工作。
  • 如果你有运行配置怎么办?所有宏都指向“真正的”项目根目录,而不是您导入的模块的根目录,这意味着您必须在 VM 选项中使用绝对路径。有人对此有解决方案吗?编辑:是的,我只是为此使用了 $MODULE_DIR$,它起作用了。
【解决方案2】:

由于 macOS Big Sur 和 IntelliJ IDEA 2020.3.2,您可以使用 “在 macOS Big Sur 的选项卡中打开项目” 功能。要使用它,您必须在系统设置中启用此功能:

System Preferences -> General -> Prefer tabs [always] when opening documents

在这一步之后,当你尝试在 IntelliJ 中打开第二个项目时,选择New Window(是的,New Window,而不是This Window)。

应该在同一窗口中打开新项目,但在新卡中:

【讨论】:

  • 不幸的是,这个功能对我不起作用。有人遇到这个问题吗?
【解决方案3】:

第 1 步:打开“Maven 项目”

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

【讨论】:

  • 我在我的实例中看不到该选项:2019.3 community
  • 谢谢!如其他流行答案中所述,将其他部分添加为“模块”有什么优势?
  • 添加后我需要知道如何再次“删除”它。
【解决方案4】:

到 Intellij IDEA 2019.2,F4 + 点击模块,点击 + 用于从你的硬盘添加任何项目,在这个菜单上方你可以编辑 IDE,你可以创建项目和更多选项,非常简单

【讨论】:

    【解决方案5】:

    从 2019.2 版开始,这就像 File->Attach Project 一样简单。

    ?????

    见:https://youtrack.jetbrains.com/issue/WEB-7968

    【讨论】:

    • 您使用的是社区版还是终极版?我是 Intellij 的新手,只获得了 CE(2019.3.3)。该菜单中没有附加项目。
    • AFAICT 这是 PhpStorm 特有的功能:jetbrains.com/help/phpstorm/…
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

      对于使用 Gradle 的人也可以使用:

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

      【讨论】:

      • 您使用的是社区版还是终极版?我是 Intellij 的新手,只获得了 CE(2019.3.3)。该菜单中没有 Gradle。
      【解决方案8】:

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

      我发现执行此操作的最简单方法是单击“Maven 项目”窗口(查看 > 工具窗口 > Maven 项目)中的小 + 图标,然后选择要导入的其他 pom 文件。

      【讨论】:

      • 只是添加:一旦添加了 Maven 项目,如果它是本地项目,它将加载到项目面板中。
      • 如果这些项目位于不同的 git 存储库中,您可以在设置(设置 > 版本控制 > Git)中勾选“同步控制存储库”。 IntelliJ 将在多个项目中保持推送、更新和分支选择同步。
      • 对于那些刚接触 IntelliJ 并且不知道“Maven 项目”窗口在哪里的人:右上角。
      • 因此,如果您需要打开多个项目,但它们是 Gradle 或 Ant 项目,那么您仍然不走运。不,谢谢...我需要能够打开所有 3 个,例如 NetBeans 和 Eclipse 允许。缺乏合适的工作空间是我仍然不使用 IJ 的第一大原因。
      【解决方案9】:

      我是 maven 新手,不明白如何使用通过 Viktor Nordling's answer 添加的本地 maven 项目,并且在 pom.xml 文件中仍然具有适当的依赖关系。答案很简单:intellij 首先查看您本地添加的模块,如果找不到,它会远程获取项目。您可以通过查看项目下的“外部库”来检查这一点添加或删除 Maven 模块时的浏览器。

      希望这对任何人都有帮助。

      【讨论】:

        【解决方案10】:

        没有一个解决方案适合我,因为我没有从事 Maven 项目。有一个更简单的解决方案。前往:

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

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

        更新:当您要重新打开具有多个子项目的项目时,为了避免重复上述步骤,只需转到 文件->打开最近->'你的大项目'。

        【讨论】:

        • 是的......哦是的......这是我正在寻找的解决方案。导入为 maven 模块或项目不会生成 .ideaxxx.iml 文件。这可能会导致 apache tile 出现问题。我正在使用版本2018.1.5。非常感谢。
        • 这太棒了!唯一的缺点是仅将 IDE 用作编辑器,并且仍然必须导航到正确的文件夹才能编译和运行。任何人都有一种简单的方法可以将此解决方案用于多个文件夹(复制的模块)并且仍然在编辑器中编译和运行?
        • 停止环顾四周,跟随这个。这是问题的正确答案。
        【解决方案11】:

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

        【讨论】:

          【解决方案12】:

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

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

          【讨论】:

          • 这正是 OP 试图避免的。他希望它们在同一个窗口中,同时所有三个项目。
          • @SimonForsberg 是的,但他还需要更改此处的设置以在同一窗口中运行其他帖子未显示的许多项目。
          【解决方案13】:
          • 新建空项目
          • 文件 -> 新建 -> 来自现有源的模块

          【讨论】:

            【解决方案14】:

            您可以使用Armory plugin,它可以让您在项目之间轻松切换。项目列表的默认快捷键是 Alt + A

            默认情况下,当前打开的项目显示在此列表的顶部(带有粗体样式)。

            【讨论】:

              【解决方案15】:

              扩展@Neo 答案: 选择目录后。选择 import module from external model 并选择您的模型(在本例中为 Maven)。

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

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

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

              【讨论】:

                【解决方案16】:

                对于不使用 maven 构建并希望添加新项目的人(我使用的是 intellij 14.1.3):

                1. 在项目视图中右击顶层文件夹,选择新建-> 模块
                2. 将模块命名为与要添加的项目相同的名称
                3. 从顶部菜单中选择文件->新建->项目。输入与 新模块,同样的文件夹位置。
                4. 打开项目,等待intellij创建项目 结构。
                5. 关闭这个新项目,并打开模块所在的原始项目 在第 2 步中添加

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

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

                【讨论】:

                • IntelliJ 增加了对向项目添加 sbt 模块的支持,它工作得非常好,但它似乎从 2017 版本开始就坏了。你仍然可以添加多个 sbt 模块,但是当你刷新时,你最终会失去一个,只剩下一个。
                【解决方案17】:

                在 IntelliJ 14.1.2 中,我做了如下操作:

                选择File->Project Structure->Modules

                选择+Import Module,选择你的项目目录(或者pom所在的目录),点击确定。

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

                【讨论】:

                • 不能像这样添加模块。 Cannot import anything from C:/Projects/
                • @everalian,你在 C:/Projects 或其他地方有 pom.xml 吗?
                • 不,我没有 pom.xml 文件。因为我使用Gradle build.
                • 这应该是公认的解决方案。并非所有项目都使用 Maven。
                【解决方案18】:

                无需将整个项目移动到模块中。模块的用例比项目容器更细。

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

                文件 -> 打开项目

                选择在此窗口中打开。

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

                【讨论】:

                • 不工作。它将当前打开的项目替换为同一窗口。
                • @everalian 不幸的是,此功能已被删除。
                【解决方案19】:

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

                【讨论】:

                • 它说无法将.ipr 打开到项目中
                【解决方案20】:

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

                【讨论】:

                • 我也在做同样的事情:导入主项目,然后我使用“导入模块”导入我的第二个项目,但后来 - 我得到“这些模块已从 maven 结构中删除:.. . 您是否也希望将它们从项目中删除? - 然后我按“否”。但是这个对话框出现了很多次。我能做什么?
                • @redDevil 哪一个?
                • @redDevil 不!这个答案更笼统,如果你有非 Maven 项目,这个答案会更好,因为投票最多的答案根本不包括它们。这两个答案解决了不同的情况并且同样相关,没有一个比另一个更好
                • 这比“仅 Maven”的答案要好,但如果您有不相关的项目,您希望同时可见(例如,轻松访问以引用另一个项目的代码),或者如果您支持一个库,它是您关注的项目的依赖项。非常令人沮丧的是,IJ 在这里没有使用 Eclipse/NetBeans 模型,这是阻止我切换到 IJ 的主要原因。
                • 我希望在 IntelliJ 中看到的并不是在项目资源管理器中列出所有项目,因为它只会让事情变得更复杂,但我希望看到一个新选项说“打开项目”,它是显示我的工作区的智能视图,然后我选择我的项目。目前“打开”菜单项显示类似于文件系统打开对话框的打开对话框,然后我必须查找我知道其中包含我的项目的目录。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-04-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多