11.4.3 在 IDEA 中 clone GitHub 上的仓库
将上图复制得到的 url 粘贴至idea中:
成功拉取到本地:
11.4.4 另一种clone GitHub仓库的方式
11.4.5 本地代码分享到 GitHub
此时会在 GitHub 上创建一个新的仓库,而非更新已经存在的仓库。
查看一下我们的Github仓库:
11.5 Git 的常用操作
- clone:拷贝远程仓库
- commit:本地提交
- push:远程提交
- pull:更新到本地
11.6 没有使用 Git 时本地历史记录的查看
即使我们项目没有使用版本控制功能,IntelliJ IDEA 也给我们提供了本地文件历史记录。
12.断点调试
12.1 Debug 的设置
设置 Debug 连接方式,默认是 Socket。Shared memory
是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少。
12.2 常用断点调试快捷键
step over 进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
step into 进入下一步,如果当前行断点是一个方法,则进入当前方法体内
force step into 进入下一步,如果当前行断点是一个方法,则进入当前方法体内
step out 跳出
resume program 恢复程序运行,但如果该断点下面代码还有断点则停在下一个断点上
stop 停止
mute breakpoints 点中,使得所有的断点失效
view breakpoints 查看所有断点
Force Step Into 也是单步执行,他与Step Into 类似。 二者唯一的区别是: Step Into 不会进入到JDK实现的方法中,而Force Step Into 会进入到JDK实现的方法中。 Force Step Into 会进入到任何方法中单步执行!
12.3 条件断点
12.3.1 说明
调试的时候,在循环里增加条件判断,可以极大的提高效率,心情也能愉悦。
12.3.2 具体操作
在断点处右击调出条件断点。可以在满足某个条件下,实施断点。
📝 示例:
/** * @author 狐狸半面添 * @create 2022-11-16 22:21 */ public class HelloWorld { public static void main(String[] args) { for (int i = 0;i<100;i++){ System.out.println("i"); } } }
12.3.3 查看表达式的值(alt + F8)
选择行,查看值:
/** * @author 狐狸半面添 * @create 2022-11-16 22:21 */ public class HelloWorld { public static void main(String[] args) { HashMap<String,String> hashMap = new HashMap(); hashMap.put("name","狐狸半面添"); hashMap.put("sex","男"); hashMap.put("age","19"); } }
还可以在查看框中输入编写代码时的其他方法:
/** * @author 狐狸半面添 * @create 2022-11-16 22:21 */ public class HelloWorld { public static void main(String[] args) { String name = "夜莺"; HashMap<String,String> hashMap = new HashMap(); hashMap.put("name","狐狸半面添"); hashMap.put("sex","男"); hashMap.put("age","19"); } }
13.配置 Maven
13.1 Maven 的介绍
Make -> Ant -> Maven -> Gradle
Maven 是 Apache 提供的一款自动化构建工具,用于自动化构建和依赖管理。开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为 Maven使用了一个标准的目录结构和一个默认的构建生命周期。在如下环节中,Maven 使得开发者工作变得更简单。
构建环节:
- 清理:表示在编译代码前将之前生成的内容删除
- 编译:将源代码编译为字节码
- 测试:运行单元测试用例程序
- 报告:测试程序的结果
- 打包:将 java 项目打成 jar 包;将 Web 项目打成 war 包
- 安装:将 jar 或 war 生成到 Maven 仓库中
- 部署:将 jar 或 war 从 Maven 仓库中部署到 Web 服务器上运行
13.2 Maven 的配置
- Maven home directory:可以指定本地 Maven 的安装目录所在。假如没有配置的话,这里可以选择你的 Maven 安装目录。此外,这里不建议使用 IDEA 默认的。
- User settings file / Local repository:我们还可以指定 Maven 的 settings.xml 位置和本地仓库位置。
Import Maven projects automatically
:表示 IntelliJ IDEA 会实时监控项目的 pom.xml 文件, 进行项目变动设置。Automatically download
:在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是没有勾选的,也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果我们需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可。IntelliJ IDEA 支持直接从公网下载源码和文档的。VM options for importer
:可以设置导入的 VM 参数。一般这个都不需要主动改,除非项目真的导入太慢了我们再增大此参数。
13.3 创建对应的 Module
Spring Initalizr 是 springboot 工程的模板
下面可以暂时先不选,后面开发需要了再进行设置,直接点击 create
即可。
如果如我的上图所示,pom.xml文件和java文件的图标都变成了橙色,只需要选中pom.xml文件,右键,点击最下面" add as maven project
"即可。
创建完成以后,可以在 IDEA 右边看到创建的 Module。如果没有,可以刷新一下。
目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。比如这里install,如果其他项目需要将这里的模块作为依赖使用,那就可以双击install
,安装到本地仓库的位置。
14.其它设置
14.1 生成 javadoc
- Locale:输入语言类型:
zh_CN
- Command line arguments:
-encoding UTF-8 -charset UTF-8
14.2 缓存和索引的清理
IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比。在 IntelliJ IDEA 创建索引过程中即使你编辑了代码也是编译不了、运行不起来的,所以还是安安静静等 IntelliJ IDEA 创建索引完成。
IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性再强调一次也不为过。但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的, 某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如:断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,很可能 IntelliJ IDEA 会报各种莫名其妙错误,甚至项目打不开,IntelliJ IDEA 主题还原成默认状态。即使没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓存和索引出现了问题,这种情况还不少。遇到此类问题也不用过多担心。我们可以清理缓存和索引。如下:
清除缓存、索引本质也就是去删除 C 盘下的 system 目录下的对应的文件而已,所以如果你不用上述方法也可以删除整个 system。当 IntelliJ IDEA 再次启动项目的时候会重新创建新的 system 目录以及对应项目缓存和索引。
14.3 取消更新
取消勾选:即可取消更新
14.4 插件的使用
IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的。
🏠 官网插件库:https://plugins.jetbrains.com/
Gsonformat是一款Json转字符串
的插件。安装完以后会提示重启, 才可以使用插件。
需要特别注意的是:在国内的网络下,经常出现显示不了插件列表,或是显示了插件列表,无法下载完成安装。这时候请自行打开 VPN,一般都可以得到解决。
插件名称 | 插件介绍 |
Key promoter | 快捷键提示 |
CamelCase | 驼峰式命名和下划线命名交替变化 |
CheckStyle-IDEA | 代码样式检查 |
FindBugs-IDEA | 代码 Bug 检查 |
Statistic | 代码统计 |
JRebel Plugin | 热部署 |
CodeGlance | 在编辑代码最右侧,显示一块代码小地图 |
Eclipse Code Formatter | 使用 Eclipse 的代码格式化风格,在一个团队中如果公司有规定格式化风格,这个可以使用。 |
GsonFormat | 把 JSON 字符串直接实例化成类 |
Alibaba Java Coding Guidelines | 阿里巴巴开发规范纠正 |
MyBatisX | xml与接口关联,可以快速开发、生成代码与进行跳转 |