【问题标题】:How can I change top level package name in IntelliJ IDEA?如何更改 IntelliJ IDEA 中的顶级包名称?
【发布时间】:2013-05-21 18:50:21
【问题描述】:

我有一个包结构:com.report.domain.model

我想将其更改为 com.reporting.domain.model。当我在包 com.report.domain.model 上选择 RefactorRename 时,我只看到一个重命名“模型”的选项。我曾尝试在 Project 视图和 Package 之间切换,但无济于事。我知道如何通过 Navigator 视图在 Eclipse 中进行此更改,但是如何在 IntelliJ IDEA 中进行相同的更改?

【问题讨论】:

    标签: java ide intellij-idea


    【解决方案1】:

    要更改完整的包名:

    User jkovacs has already answered this,但我将更详细地介绍这一点。比如你想把com.example.app改成my.awesome.game,那么:

    1. 在您的项目窗格中,点击小齿轮图标 ()

    2. 取消选中/取消选择Compact Empty Middle Packages 选项:

    3. 您的包目录现在将分解为单独的目录。

    4. 单独选择要重命名的每个目录,然后:

      • 右键单击它
      • 选择Refactor
      • 点击Rename
      • 在弹出对话框中,单击 Rename Package 而不是重命名目录
      • 输入新名称并点击重构
      • 让 Android Studio 更新所有更改
      • 注意:在 Android Studio 中重命名 com 时,可能会出现警告。在这种情况下,选择 全部重命名

    5. 现在打开您的 Gradle 构建文件build.gradle - 通常是 appmobile)。如果尚未自动更新,请将 applicationId 更新为您的新包名称和同步 Gradle:

    6. 完成!无论如何,Android Studio 需要让这个过程更简单一些。

    【讨论】:

    • 你说得对,它需要变得更简单。 4 年后仍在等待......我今天做了一个三级包重命名(我们称它为 ABC 到 DEF),我发现 (a) 对“R”类的引用没有更新,(b) 中的一些引用XML 文件已更改为类似于“DBCABC”,需要手动更新很多内容。我想由于人们不经常这样做,他们不想花太多精力让它变得更顺畅。
    • 其实我觉得选择“rename all”是不对的。我有一个包含多个模块的项目,我试图在其中一个模块中重命名“com”(例如,模块 1 有 com.foo,模块 2 有 com.bar,我想将模块 1 更改为 org.baz,没有影响模块 2)。当我选择“rename all”时,所有的 com 包都被重命名了,不仅仅是我点击重构的模块中的那些。当我再次这样做并选择“重命名当前”时,它工作正常。
    【解决方案2】:

    Project 窗口中,单击标题栏中的齿轮图标 并取消选择“Compact Empty Middle Packages”。然后可以单独选择report包并重命名。

    另请参阅:http://www.jetbrains.com/idea/webhelp/project-tool-window.html#d242351e401

    注意As of IntelliJ IDEA 2016.3, there is a bug in the menu and when the option is selected, it has a different label "Hide Empty Middle Packages", see https://youtrack.jetbrains.com/issue/IDEA-168362.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多