source root
idea 会编码该目录下的Java文件
错误: Java class located out of the source root 表示该类文件没有在source root 下。
缓存和索引
idea 依靠缓存和索引提供更快的查找和代码提示等,当断电或蓝屏重启时,会损坏缓存和索引,解决方法:
File -> Invalidate and Restart 会清空缓存和索引
或者
删除system目录,重启idea会重新生成缓存和索引
编译
idea 的编译更手动化,也可以设置为自动编译(settings -> compiler -> make project automatically)
- Compile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
- Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过,由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。
- Make:使用最多的编译操作。对选定的目标(Project 或 Module)进行编译,但只编译有修改过的文件,没有修改过的文件不会编译,这样平时开发大型项目才不会浪费时间在编译过程中。
project 和 module
- project 项目IDEA的最高组织单元,代表一个完成的软件系统,它是用来提供基本的coding assistance, bulk refactoring, coding style consistency, etc。项目不包含项目代码、构建脚本、文档等,它包含项目需要的module和libraries
- module module是一个独立的功能单位,它可以被编译、运行和测试。module包含源码、构建脚本、测试单元、部署说明、文档,module自能存在一project中,通过.iml描述配置信息。开发团队通常通过版本控制中心分享.iml module文件
项目格式文件
有两种:
idea (directory based) 创建项目的时候自动创建一个 .idea 的项目配置目录来保存项目的配置信息。这是默认选项。
ipr (file based) 创建项目的时候自动创建一个 .ipr 的项目配置文件来保存项目的配置信息。
idea项目的配置都是以xml文件来表现,如.idea或.iml等,所以我们在项目协同时可以将这些配置文件提交到版本控制中心,但在checkout项目之后,本地进行项目配置后不要把变化提交到版本控制系统。
git的问题
问题一: Can't update: no tracked branch
解决方式:在git-shell中项目对应的目录下,运行git branch --set-upstream-to origin/master master ,然后再回到idea更新
问题二: 输错密码后,验证登录框没有再出现