阅读(2443) (15)

IntelliJ IDEA内容根目录的使用

2017-10-10 14:41:05 更新

IntelliJ IDEA 中内容根目录指的是一个包含组成模块的所有文件的文件夹。

一个模块可以有多个内容根目录,但是,在大多数情况下,有一个内容根目录就足够了。(在某些情况下,没有内容根的模块可能是有用的,请参阅没有内容根的模块:依赖项的集合。)

IntelliJ IDEA 中的内容根目录显示为

内容根目录的文件夹类别

内容根目录中的文件夹可以分配给以下类别:

  • 源根目录(或源文件夹;显示为 )。
    通过将文件夹分配给此类别,您可以告知 IntelliJ IDEA 该文件夹及其子文件夹包含应编译为构建过程的一部分的源代码。
    在Java 模块中,源根目录中的子文件夹表示您的 Java 包结构。
    您可以为源根目录(例如 com.mycompany.myapp)指定包前缀,而不是在该源根目录中创建相应的文件夹结构(例如 com/mycompany/myapp)。有关更多信息,请参阅 Java 源根目录的包前缀。
    在没有包前缀和子文件夹的情况下,源根目录将表示默认包(未命名的包)。
  • 生成的源根目录(即生成的源文件夹;显示为 ;在某些视图中 [生成] 文本标记被使用)类似于源根目录。不同之处在于,在执行移动类重构或使用 "创建类从使用快速修复" 时,不会将生成的源根建议为目标文件夹
  • 测试源根目录 (或测试源文件夹;显示为 )。
    这些根目录类似于源根目录,但是用于测试的代码(例如用于单元测试)。测试源文件夹允许您将与测试相关的代码与生产代码分开。
    正常情况下,源和测试源的编译结果会放在不同的文件夹中。
  • 生成的测试源根目录(或生成的测试源文件夹;显示为 ;在某些视图中 [生成] 文本标记)与测试源根目录类似。不同之处在于源根目录和生成的源根目录之间的差异。
  • 资源根目录(或资源文件夹;显示为 ;仅在 Java 模块中可用)用于应用程序中使用的资源文件(图像,各种配置 XML 和属性文件等)。
    在构建过程中,资源文件夹的所有内容都按照原样复制到输出文件夹。
    与源类似,您可以指定生成资源。还可以指定应将资源复制到的输出文件夹中的哪个文件夹。
  • 测试资源根目录(或测试资源文件夹;显示为 ;仅在 Java 模块中可用)用于与测试源相关联的资源文件。在所有其他方面,这些文件夹与资源文件夹相似。
  • 排除的根目录(显示为  ),是 IntelliJ IDEA “几乎忽略”的根目录。
    为排除的文件夹中的文件提供非常有限的编码协助。
    排除的文件夹中包含的类不会出现在代码完成建议列表中,对这些类的引用在编辑器中显示为未解决。搜索时,IntelliJ IDEA 不会查找排除的文件夹等。排除其内容“不太重要”的文件夹可能会提高 IDE 性能。
    通常排除的是编译输出文件夹。
    有时,您可能希望将排除的根目录中的文件夹分配到不同的类别。例如,Maven 构建输出文件夹目标可能包含带有生成源(例如,target/generated-sources)的子文件夹。要处理这种情况,您可以将目标文件夹排除,并标记 target/generated-sources 为包含生成的源。

Java 源根目录的包前缀

包前缀指定哪个 Java 包对应于一个文件夹,并可将其分配给以下类别的 Java 源根目录:

  • 来源
  • 生成的源
  • 测试来源
  • 生成的测试源

如果指定,包前缀将作为相应的文件夹结构的等效项,否则必须另外创建。

为了说明这一点,让我们假设你要使用 com.mycompany.myapp 包。您可以在相应的源根文件夹 (如 src) 中创建文件夹结构 com/mycompany/myapp。

另一种方法是分配 com.mycompany.myapp 到 src 作为其包前缀,并将相应的类正确地存储在 src 中。

没有内容根目录的模块:依赖集合

一个模块可以单独用作其他模块的依赖项集合。在这种情况下,您可以在相应的模块上添加依赖项,而不是单独指定必要的依赖项。

用于此目的的模块显然不需要内容根目录。