我是在别人问我的时候,才发现还可以有这个问题,主要是他新项目直接打开,什么都没配置,就打算新建文件,其实可以直接看编辑器右下角的event log,那个对话框点开的话,可以add as maven project,就是添加为maven项目。然后就不会有这问题了。
具体问题的图,如下:
然后就是具体的解释和解决方案。
-
如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注,这个知识点非常非常重要,必须会。
Sources
一般用于标注类似src
这种可编译目录。有时候我们不单单项目的src
目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有Sources
这种可编译目录才可以新建 Java 类和包,这一点需要牢记。Tests
一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是src
,maven 的src
我们是不会设置为Sources
的,而是在其子目录main
目录下的java
目录,我们会设置为Sources
。而单元测试的目录是src - test - java
,这里的java
目录我们就会设置为Tests
,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。Resources
一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources
,这里的resources
目录我们就会设置为Resources
,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。Test Resources
一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources
,这里的resources
目录我们就会设置为Test Resources
,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。Excluded
一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。- 通过上面的介绍,我们知道对于非 maven 项目我们只要会设置
src
即可。
- 如上图箭头所示,被标注的目录会在右侧有一个总的概括。其中
classes
虽然是Excluded
目录,但是它有特殊性,可以不显示在这里。
所以,
你想在哪新建Java class,就给设置为src就可以啦。