如何在IntelliJ Idea中克隆整个项目?

30

我想在我的项目中运行一些测试,但不想影响原始代码,我想克隆该项目以便可以在那里运行测试。

有人知道如何在IntelliJ Idea 11上克隆项目吗?


只需复制项目目录即可。除非您想从“克隆”提交并且正在使用一个令人讨厌的版本控制系统,该系统会保留检出位置的全局注册表(例如TFS),否则这应该可以工作。 - millimoose
7个回答

33
使用您的操作系统文件浏览器工具,只需将整个项目目录复制并粘贴到新位置。默认情况下,所有配置应使用相对路径。 如果您的IDEA项目基于 .ipr,则在打开项目之前删除新的 .iws 文件。 如果您的IDEA项目基于 .idea 目录,则在打开项目之前删除 workspace.xml 文件。

3
希望补充一点,您还应该删除任何版本控制目录,比如 .git,这样您就可以将您的工作提交到一个新的代码库(如果您想要的话)。 - The Unknown Dev
如果新项目的包名与旧项目不同,您可能希望重命名新项目的包。 - Matthew
IntelliJ最新版本允许在IDE中进行项目复制:https://dev59.com/jFYM5IYBdhLWcg3wnBNZ#61665059 - Helder Daniel

6
如果您想复制并重命名项目,就像我想克隆一个项目以便在较新版本的IntelliJ中使用它一样。
1. 将整个目录复制到新位置,例如在Linux上:
cp -r myproject new/location/
2. 为了重命名项目: 2.1. 重命名项目文件夹(例如mv myproject newproject) 2.2. 进入新项目文件夹(例如cd newproject)并使用文本编辑器修改.name文件。
现在在IntelliJ中打开新项目(如果不想保留打开文件历史记录,则可以删除workspace.xml - 我保留了它),享受您的新项目!

1
如果您正在使用Gradle,您可能还需要确保在settings.gradle中检查和更改rootProject.name。 - bbarker

2
我有一个Gradle项目,提供的答案无法解决问题。在IntelliJ中,该项目没有结构,我也看不到源文件。
以下方法可行:
1. 导出项目(导出为zip文件); 2. 将zip文件移动到新位置; 3. 解压缩; 4. 在IntelliJ中使用“打开”命令将其作为新项目导入。
更好的解决方案是:
将其放在git目录中,创建一个“test-branch”,然后尝试任何你想要尝试的内容。

这个对我不起作用。它说在YYY模块中找不到XXX类。有人能给我一些建议吗? - Cheolsoon Im

2

对于重命名复制,我需要再进行一步操作,以使其不再引用旧的模块名称。这是右键单击项目窗格中的模块并执行“重构>重命名”(或使用Shift + F6)来重命名模块。

这适用于IntelliJ IDEA 2016.3.3版本。


1
显然,接受的答案在当前版本的Idea和许多派生IDE(我尝试了PHPStorm)中不再起作用。问题是:大多数配置文件位于项目的.idea子目录中,但文件.idea/workspace.xml也包含ProjectId,这当然应该是唯一的。因此,如果您手动复制了项目目录,最简单的解决方法是更改ProjectId - 从我所看到的,您可以输入任何字母数字字符串,例如"ProjectId123"
据我所见,存储在ProjectId下的主要设置是工作区设置,在~/.config/JetBrains/[IDENameAndVersion]/workspace/[ProjectId].xml下。该文件主要包含打开的编辑器选项卡(相对于项目目录的路径)和工具窗口,因此,如果您复制项目目录,则两个项目中将始终打开相同的编辑器选项卡(包含来自各自项目的“相同”文件)。如果您想避免打开所有文件并设置工具窗口,可以将旧的[ProjectId].xml文件复制到例如ProjectId123.xml(使用您之前输入的ProjectId)。

是的,你说得对,我找到了。我克隆了一个项目,但他们总是使用相同的书签,因为书签存储在<ide-config-dir>/workspace/[ProjectId].xml中,而两个项目都使用相同的xml文件。 - qiz_newbie

0

将现有项目复制到新文件夹后,不要忘记将您的src目录标记为源代码目录。您可以在项目结构 | 模块下完成此操作。


-1
为了复制和重命名CLion cmake项目,我按照其他答案中的信息进行了一些调整。
似乎消除新项目中所有对旧项目名称的引用的无步骤方法是(在CLion 2019.1.2中测试):
  1. 复制文件夹

  2. 重命名新文件夹

在新项目文件夹中:
  • 删除项目信息文件夹(CLion将重新创建它):

    <new project name>/.idea
    
  • 在文本编辑器中打开:

    <new project name>/CMakeLists.txt 
    

    将旧项目名称的每个引用更改为新名称并保存。 这将确保CLion不会使用“CMakeLists.txt”文件中的项目和目标信息来重新创建带有旧名称的项目文件和数据的“.idea”文件夹。

  • 请注意,此文件中引用旧项目文件夹或存储在其中的文件的其他信息(例如INCLUDE、SOURCE目录和文件)也应更改为指向新文件夹。
    1. 删除旧的编译数据。删除以下文件夹:

      <新项目名称>/cmake-*
      
    2. 在CLion中打开项目

    它应该有新的名称,并且不应该在任何地方引用旧名称。

    1. 如果使用CSV,您可能还希望删除旧的CSV数据

    编辑:如果项目需要CUDA,则必须重新分配CUDACXX环境变量为nvcc编译器的完整路径:

    文件->设置->构建、执行、部署->CMake->环境

    如果安装了CLion CUDA运行补丁程序,则可能需要重新启动CLion。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接