IntelliJ IDEA内容根目录的使用
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 中。
没有内容根目录的模块:依赖集合
一个模块可以单独用作其他模块的依赖项集合。在这种情况下,您可以在相应的模块上添加依赖项,而不是单独指定必要的依赖项。
用于此目的的模块显然不需要内容根目录。