源根之外的java文件,IntelliJ IDEA内容根目录的使用

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

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

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

bee68df01e5b92e1a5a0f41e8ac40288.png

f32e0d8e984c980cbe8b1ddc19edc80d.png

内容根目录的文件夹类别

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

源根目录(或源文件夹;显示为

abec296759d2acf172ce210e2ca77720.png)。

通过将文件夹分配给此类别,您可以告知 IntelliJ IDEA 该文件夹及其子文件夹包含应编译为构建过程的一部分的源代码。

在Java 模块中,源根目录中的子文件夹表示您的 Java 包结构。

您可以为源根目录(例如 com.mycompany.myapp)指定包前缀,而不是在该源根目录中创建相应的文件夹结构(例如 com/mycompany/myapp)。有关更多信息,请参阅 Java 源根目录的包前缀。

在没有包前缀和子文件夹的情况下,源根目录将表示默认包(未命名的包)。

生成的源根目录(即生成的源文件夹;显示为

538ecd4e64e029850d5304c7de972e5a.png;在某些视图中 [生成] 文本标记被使用)类似于源根目录。不同之处在于,在执行移动类重构或使用 "创建类从使用快速修复" 时,不会将生成的源根建议为目标文件夹

测试源根目录 (或测试源文件夹;显示为

cbf76e353d03f741ebfa19713e6e8007.png)。

这些根目录类似于源根目录,但是用于测试的代码(例如用于单元测试)。测试源文件夹允许您将与测试相关的代码与生产代码分开。

正常情况下,源和测试源的编译结果会放在不同的文件夹中。

生成的测试源根目录(或生成的测试源文件夹;显示为

f4ad5ffb1272749528537c71c11c45fd.png;在某些视图中 [生成] 文本标记)与测试源根目录类似。不同之处在于源根目录和生成的源根目录之间的差异。

资源根目录(或资源文件夹;显示为

81f7ac90eb36ca4d34158eb3b6e7bf97.png;仅在 Java 模块中可用)用于应用程序中使用的资源文件(图像,各种配置 XML 和属性文件等)。

在构建过程中,资源文件夹的所有内容都按照原样复制到输出文件夹。

与源类似,您可以指定生成资源。还可以指定应将资源复制到的输出文件夹中的哪个文件夹。

测试资源根目录(或测试资源文件夹;显示为

800a1db162731daa61f8b683655ac0af.png;仅在 Java 模块中可用)用于与测试源相关联的资源文件。在所有其他方面,这些文件夹与资源文件夹相似。

排除的根目录(显示为

ef29276c0a567f267a7dbc577c2ec86b.png),是 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 中。

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

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

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 源根之外Java文件无法编译是因为在Java编译的过程中,编译器只会处理指定的源文件,而源文件的范围通常限定在源根目录下。源根目录是指项目的根目录下的指定文件夹,通常被称为"src"文件夹。 编译器需要根据源文件之间的依赖关系来逐个编译源文件,根据需要生成对应的字节码文件。如果某个Java文件位于源根目录之外的位置,编译器就无法找到并处理它,因此无法将其编译为字节码文件。 需要注意的是,虽然源根之外Java文件无法直接编译,但是可以作为外部库文件导入到源码中,并在源码中进行调用。通过使用import关键字引入外部库文件,可以在源文件使用外部库提供的类和方法。 总之,源根之外Java文件无法直接进行编译,但可以通过导入外部库的方式在源文件使用。编译器只会处理源根目录下的Java文件,并根据依赖关系逐个编译生成对应的字节码文件。 ### 回答2: 在Java中,源根(source root)是指项目中存放源代码的根目录。在这个目录之外Java文件无法被编译。 Java编译器在编译Java文件时,会按照一定的规则去查找和编译源代码文件。默认情况下,编译器只会编译源根目录下的Java文件,并会将编译生成的.class文件保存在对应的目录中。 如果Java文件不在源根目录下,编译器将无法找到这些文件并进行编译。这是因为编译器依赖于文件的路径来确定要编译的文件。 对于不在源根目录下的Java文件,我们可以通过修改编译器的参数来指定它们所在的位置。可以使用命令行工具或者构建工具(如Maven或Gradle)来配置编译路径,使编译器能够找到并编译这些Java文件。 值得注意的是,虽然源根之外Java文件无法直接编译,但是它们可以作为依赖文件被编译器引用。在一些特殊的情况下,我们可能需要将源码文件放在源根之外,以便供其他文件引用。 总之,源根之外Java文件无法直接编译,但可以通过配置编译路径来让编译器找到并进行编译。 ### 回答3: 源根之外Java文件无法编译是因为Java编译器只会编译源根目录下面的Java文件源根目录是指项目中java源代码文件根目录,通常是一个文件夹。这个根目录下可以有多个包(package),每个包下又可以有多个Java文件Java编译器编译Java文件时,会按照包的结构将编译后的类文件(.class文件)保存在对应的包目录中。因此,如果一个Java文件不在源根目录中或者有一个新的包需要编译,需要将该文件移动到源根目录下或者在源根目录下建立一个对应的包目录。 另外,源根之外Java文件也无法被其他Java文件引用。在Java中,要使用一个类或者接口,需要先在代码中import这个类或者接口,然后才能使用它们提供的方法和属性。而import语句只会搜索源根目录及其子目录下的包,因此源根之外Java文件是无法被正确引用的。 综上所述,源根之外Java文件无法编译是因为编译器只会编译源根目录下的Java文件,也无法被其他Java文件引用。为了解决这个问题,我们可以将源根之外Java文件移动到源根目录下,或者在源根目录下建立对应的包目录,并将文件放入该目录中。这样就可以正常进行编译和引用了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值