问题原因
这是project structure设置造成的,开始创建项目的时候将java和resources分别设置为sources和resources是有目的的,系统在编译的时候会根据设置文件夹的属性对文件夹进行编译.项目启动时一直处于build状态是因为在编译的时候一起把target文件夹给编译了,导致在生成target文件是循环编译,这样的结果就是项目一直处于build状态且工作空间中这个项目的target文件夹一直在变大.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9W2qOr56-1626922764640)(https://i.loli.net/2021/07/22/BmOlxXoNRFMhK1G.png)]
导致结果
项目一直处于build状态
你以为可能是因为项目太大启动慢,实则不是.
生成了无限嵌套的target目录:打开target目录里面除了正常内容还包括一个target,再次打开发现内容还是一样,说明target被无限编译
解决方案
1. 将所有文件设置为Source目录但是要将target设置为excluded目录
2. 只将java设置为Source目录
Idea中五种不同目录类型
- Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src
目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources
这种可编译目录才可以新建 Java 类和包。在规范的 maven 项目结构中,顶级目录是 src,但maven 的 src
我们是不会设置为 Sources 的,而是在其子目录src - main -java ,我们会设置java目录为 Sources。- Tests 一般用于标注可编译的单元测试目录。而单元测试的目录是 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
废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能