从eclipse迁移
从Eclipse切换到IntelliJ IDEA,特别是如果您已经使用Eclipse很长一段时间了,需要了解两个ide之间的一些基本差异,包括它们的用户界面、编译方法、快捷方式、项目配置和其他方面。
导入Eclipse项目到IntelliJ IDEA中
您可以导入一个Eclipse工作区或单个Eclipse项目,为此,单击Welcome Screen上的open或在主菜单中选择File | open。
IntelliJ IDEA会自动检测位于计算机上的Eclipse项目,并将它们放在Welcome Screen上的专用节点中。该节点将在最近的项目中可用,直到您决定删除它,当Eclipse项目位于节点中时,只需单击它就可以在IDE中快速打开它。
如果您的项目使用或等构建工具,我们建议选择关联的构建文件pom.xml或build,导入项目时使用Gradle。
如果想从Eclipse导入现有的运行配置,请考虑使用这个第三方插件。
用户界面
无工作空间
在启动IntelliJ IDEA时,您会注意到的第一件事是它没有工作空间的概念,这意味着一次只能处理一个项目。在Eclipse中,通常是有一组相互依赖的项目,而在IntelliJ IDEA中,是有一个由一组模块组成的单个项目。
如果有几个不相关的项目,则可以在单独的窗口中打开它们。
如果您仍然希望在一个窗口中打开几个不相关的项目,此时可以将它们配置为模块。
ntelliJ IDEA vs Eclipse术语
下表比较了Eclipse和IntelliJ IDEA中的术语:
|
|
||
---|---|---|---|
工作空间 | 项目 | ||
项目 | 模块 | ||
方面 | 方面 | ||
库 | 库 | ||
JRE | SDK | ||
类路径变量 | 路径变量 |
无透视图
当您切换到IntelliJ IDEA时,您会发现它没有透视图。
这意味着您不需要在不同的工作空间布局之间手动切换来执行不同的任务,IDE会遵循上下文并自动调出相关工具。
工具窗口
就像在Eclipse中一样,在IntelliJ IDEA中也有工具窗口,要打开工具窗口,请在工具窗口栏中单击其名称:
当工具栏隐藏时,将鼠标悬停在左下角对应的图标上,可以打开任意一个工具窗口:
如果您想让工具窗口栏暂时可见,可以按两次Alt键并按住它。
如果不想使用鼠标,可以通过按指定的快捷方式切换到任何工具栏,要记住的最重要的捷径是:
-
Project: Alt+1
-
Commit: Alt+0
-
Terminal: Alt+F12
关于工具窗口的另一件事是,您可以拖动、固定、解固定、附加和分离它们:
要帮助存储/恢复工具窗口布局,有两个有用的命令:
-
Window | Store Current Layout as Default
-
Window | Restore Default Layout(也可通过Shift+F12)
多窗口
IntelliJ IDEA中的Windows管理与Eclipse略有不同,不能用一个项目打开多个窗口,但可以将任意数量的编辑器选项卡分离到单独的窗口中。
始终选择打开的文件
默认情况下,当您在编辑器选项卡之间切换时,IntelliJ IDEA不会改变项目工具窗口中的选择,但是可以在工具窗口设置中启用它:
工作流程
无“保存”按钮
IntelliJ IDEA没有保存按钮。因为在IntelliJ IDEA中,您可以撤销重构并从本地历史中恢复更改,所以每次都要求保存更改是没有意义的。
尽管如此,有必要知道的是物理保存到磁盘是由某些事件触发的,包括编译、关闭文件、从IDE切换焦点等等。您可以通过Settings/Preferences | Appearance & Behavior | System Settings操作:
保存操作
如果您是有经验的Eclipse用户,那么应该熟悉 save actions:保存时自动触发的操作,例如重新格式化代码、组织导入等。
IntelliJ IDEA还具有保存操作,您可以在 Settings/Preferences | Tools | Actions on Save操作中找到并启用。
最重要的是,IntelliJ IDEA提供了在提交时自动运行相应操作的功能:
或手动:
-
Code | Reformat Code Ctrl+Alt+L
-
Code | Optimize Imports Ctrl+Alt+O
-
Code | Code Cleanup
编译
IntelliJ IDEA编译项目的方式在许多方面与Eclipse不同。
Auto-compilation
默认情况下,IntelliJ IDEA不会在保存时自动编译项目,因为通常我们不会在IntelliJ IDEA中显式调用保存操作。
如果您想模仿Eclipse的行为,可以调用Build Project操作Ctrl+F9,它将保存更改的文件并编译它们。
您还可以在Settings/Preferences | Tools | Actions on Save中启用Build project保存操作。
请注意,IntelliJ IDEA中的自动编译与Eclipse中的不同。在Eclipse中,它不是完全自动的,因为它是由用户显式调用的保存操作触发的,而在IntelliJ IDEA中,当您在编辑器中输入时,它是隐式调用的。
这就是为什么即使启用了Build project选项,如果至少有一个应用程序正在运行,IntelliJ IDEA也不会执行自动编译,它将隐式地重新加载应用程序中的类,在这种情况下,您可以调用Build | Build Project Ctrl+F9。
问题工具窗口
如果在保存操作中启用了构建项目选项,则会出现问题工具窗口,它显示了在项目编译中检测到的问题列表。
Eclipse编译器
Eclipse使用自己的编译器,而IntelliJ IDEA使用与项目JDK捆绑在一起的javac编译器。如果必须使用Eclipse编译器,导航到Settings | Preferences | Build, Execution, Deployment | compiler | Java compiler,然后选择它,如下所示:
Eclipse和javac编译器之间最大的区别是Eclipse编译器对错误的容忍度更高,有时允许您运行无法编译的代码。
当需要在IntelliJ IDEA中运行编译错误的代码时,将运行配置中的Build选项替换为Build,no error check。
快捷键
IntelliJ IDEA的快捷方式与Eclipse中的完全不同。
下表显示了如何将顶级Eclipse操作(及其快捷方式)映射到IntelliJ IDEA(您可能希望将其打印出来以便随时使用)。
如果选择特定于操作系统的键图(默认为Windows/Linux或macOS为macOS),则IntelliJ IDEA中使用的快捷键与您的操作系统之间可能存在冲突,为了避免这种冲突,我们建议调整操作系统快捷方式设置。
Eclipse | IntelliJ IDEA | ||||
---|---|---|---|---|---|
Action |
|
Action |
|
||
代码自动完成 |
|
基本完成 | Ctrl+Space | ||
- | - | 类型匹配完成 | Ctrl+Shift+Space | ||
- | - | 语句补全 | Ctrl+Shift+Enter | ||
快速访问 | Ctrl + 3 | 到处搜索 | 双转移 | ||
最大化活动视图或编辑器 | Ctrl + M | 隐藏所有工具窗口 | Ctrl + Shift + F12 | ||
开放式 | Ctrl + Shift + T | 导航到类 | Ctrl + N | ||
开放资源 | Ctrl + Shift + R | 导航到文件 | Ctrl + Shift + N | ||
- | - | 导航到symbol | Ctrl + Alt + Shift + N | ||
下一个视图 | Ctrl + F7 | - | - | ||
- | - | 最近的文件 | Ctrl + E | ||
快速概述 | Ctrl + O | 文件结构 | Ctrl + F12 | ||
移动线 | Alt+Up/Down | 移动线 | Alt+Shift+Up/Alt+Shift+Down | ||
删除行 | Ctrl + D | 删除行 | Ctrl + Y | ||
快速修复 | Ctrl + 1 | 表明意图行动 | Alt + Enter | ||
快速切换编辑器 | Ctrl + E | 切换器 | Ctrl + Shift + Tab | ||
- | - | 最近的文件 | Ctrl + E | ||
快速的层次结构 | Ctrl + T | 导航到类型层次结构 | Ctrl + H | ||
- | - | 导航到方法层次结构 | Ctrl + Shift + H | ||
- | - | 显示UML弹出窗口 | Ctrl + Alt + U | ||
最后编辑位置 | Ctrl+Q | 最后编辑位置 | Ctrl+Shift+Backspace | ||
下一个编辑 | Ctrl + F6 | 选择next选项卡 | Alt+Right | ||
运行 | Ctrl+Shift+F11 | 运行 | Shift + F10 | ||
调试 | Ctrl+F11 | 调试 | Shift + F9 | ||
正确缩进 | Ctrl+I | 自动缩进线 | Ctrl+Alt+I | ||
格式 |
Ctrl + Shift + F |
重新格式化代码 | Ctrl + Alt + L | ||
被包围 | Ctrl + Alt + Z | 被包围 | Ctrl + Alt + T | ||
- | - | 用实时模板包围 | Ctrl + Alt + J | ||
公开声明 | F3 | 导航到声明 | Ctrl + B | ||
- | - | 快速定义 | Ctrl + Shift + I | ||
开放类型层次结构 | F4 | 导航到类型层次结构 | Ctrl + H | ||
显示UML弹出窗口 | Ctrl + Alt + U | ||||
工作区中的引用 | Ctrl + Shift + G | 查找用法 | Alt + F7 | ||
- | - | 显示用法 | Ctrl + Alt + F7 | ||
- | - |
查找用法设置 |
Ctrl + Alt + Shift + F7 | ||
打开搜索对话框 | Ctrl + H | 在文件中查找 | Ctrl + Shift + F | ||
文件中的事件 | Alt + Ctrl + U | 突出显示文件中的用法 | Ctrl + Shift + F7 | ||
复制行 | Ctrl+Alt+Down | 重复行 | Ctrl + D | ||
提取局部变量 | Ctrl + Alt + L | 提取变量 | Ctrl + Alt + V | ||
分配到字段 | Ctrl + 2 / Ctrl + F | 提取字段 | Ctrl + Alt + F | ||
显示重构快速菜单 | Ctrl + Alt + T | 重构它 | Ctrl + Alt + Shift + T | ||
重命名 | Ctrl + Alt + R | Ctrl + Alt + R | Ctrl + Alt + R | ||
排队 | Ctrl + L | 导航到线路 | Ctrl + G | ||
结构的选择 | Alt+Shift+Up/Alt+Shift+Down | 选择插入字符 | Ctrl + W / | ||
查找下一个 | Ctrl + J | 查找下一个 | F3 | ||
显示 | Ctrl + Alt + W | 选择 | Alt + F1 | ||
背面 | Ctrl+[ | 背面 | Ctrl+Alt+Left | ||
前进 | Ctrl+] | 前进 | Ctrl+Alt+Right |
Eclipse keymap
对于不喜欢学习新的快捷方式的Eclipse用户,IntelliJ IDEA提供了Eclipse keymap,这非常类似于它的快捷方式:
寻找行动
当您不知道某些操作的快捷方式时,请尝试使用通过Ctrl+Shift+A提供的Find action功能,输入查找操作的名称,查看其快捷方式,或调用它:
代码协助
Eclipse和IntelliJ IDEA都提供了编码辅助特性,比如代码完成、代码生成、快速修复、活动模板等等。
快速修改
要在IntelliJ IDEA中应用快速修复,请按Alt+Enter:
所有快速修复都基于 Settings/Preferences | Editor | Inspections:
如果您想一次性将快速修复应用到几个地方(即整个文件夹、模块甚至项目),可以通过运行相应的检查来完成:Code | Analyze Code | Run inspection by Name…或者使用配置文件"{0}"…通过Code | running Code Cleanup来运行整批检查:
除了直接的问题,IntelliJ IDEA还能识别出可以通过所谓的意图(也可以用Alt+Enter)来改进或优化的代码结构:
1
Eclipse | IntelliJ IDEA | ||
---|---|---|---|
动作 |
快捷方式 | 动作 | 快捷方式 |
快速修复 | Ctrl+1 | 表明意图行动 | Alt+Enter |
生成代码
生成代码的关键操作是code | Generate,可通过Alt+Insert获得:
这个操作是上下文相关的,不仅在编辑器中可用,在项目工具窗口和导航栏中也可用:
代码自动完成
IntelliJ IDEA提供了不同类型的代码补全,包括:
- 基本完成
- 二次基本完井
- 类型匹配的完成
- 第二次类型匹配完成
- 声明中完成
默认情况下,IntelliJ IDEA不显示所选项目的文档弹出框,但可以在Settings/Preferences | Editor | Code Completion | Show the documentation popup in框中启用它:
如果不想启用这个选项,可以在需要的时候按Ctrl+Q手动调用这个弹出窗口:
当插入符号在方法或构造函数的括号内时,可以通过Ctrl+P调用Parameter info来获取参数信息:
Eclipse |
IntelliJ IDEA | ||||
---|---|---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 | ||
代码自动完成 |
|
基本完成 | Ctrl + Space | ||
类型匹配的完成 |
Ctrl+Shift+Space |
||||
语句补全 | Ctrl + Shift + Enter |
模板
您可能习惯于在编辑器中键入main,然后调用代码完成将其转换为主方法定义。然而,IntelliJ IDEA模板略有不同:
模板 | Eclipse | IntelliJ IDEA |
---|---|---|
定义一个主方法 | main |
psvm |
迭代数组 |
for |
itar |
迭代一个集合 |
for |
itco |
迭代列表 |
for |
itli |
使用foreach语法迭代可迭代对象 | foreach |
iter |
打印到System.out |
sysout |
sout |
打印到System.err | syserr | serr |
定义一个静态字段 | static_final | psf |
可用模板列表可以在 Settings | Editor | Live Templates中找到,在那里,您还可以添加自己的模板或修改任何现有的模板。
后缀模板
除了“常规”模板,IntelliJ IDEA还提供了所谓的后缀模板。当您希望将模板应用于已经键入的表达式时,它们非常有用。例如,键入一个变量名,添加.ifn并按Tab键,IntelliJ IDEA会把表达式转换为if(…==null){…}。
要查看可用后缀模板的完整列表,请进入Settings | Editor | General | Postfix Completion完成。
用实时模板包围
环绕模板是另一个附加功能,它的工作方式类似于实时模板,但可以使用Ctrl+Alt+J应用于选定的代码。
要用模板定义您自己的环绕,进入Settings | Editor | Live Templates模板,在模板文本中使用$SELECTION$:
$LOCK$.readLock().lock(); try { $SELECTION$ } finally { $LOCK$.readLock().unlock(); }
Refactorings
下表将Eclipse中最常见的重构快捷方式与IntelliJ IDEA中的快捷方式进行了对比:
|
|
||||
---|---|---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 | ||
提取局部变量 | Ctrl + Alt + L | 提取变量 | Ctrl + Alt + V | ||
分配字段 | Ctrl + 2 | 提取字段 | Ctrl + Alt + F | ||
显示重构快速菜单 | Alt + Shift + T | 重构它 | Ctrl+Alt+Shift+T | ||
重命名 | Ctrl + Alt + R | 重命名 | Shift + F6 |
撤销
有时,重构可能会影响项目中的许多文件。IntelliJ IDEA不仅可以安全地应用更改,还可以恢复它们,要撤消上次重构,请将焦点切换到Project工具窗口并按Ctrl+Z。
搜索
下面是最常见的搜索操作和快捷方式的示意图:
|
IntelliJ IDEA | |||
---|---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 | |
打开搜索对话框 | Ctrl + H | 在文件中查找 | Ctrl + Shift + F | |
工作区中的引用 | Ctrl + Shift + G | 查找用法 | Alt + F7 | |
显示用法 | Ctrl + Alt + F7 | |||
查找用法设置 | Ctrl + Alt + Shift + F7 | |||
文件中出现的事件 | Alt + Ctrl + U | 突出显示文件中的用法 | Ctrl + F7 |
导航
下表大致映射了Eclipse中可用的导航操作与IntelliJ IDEA中的导航操作:
|
|
||||
---|---|---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 | ||
快速访问 | Ctrl + 3 | 到处搜索 | 双转移 | ||
开放式 | Ctrl + Shift + T | 导航到类 | Ctrl + N | ||
开放资源 | Ctrl + Shift + R | 导航到文件 | Ctrl + Shift + N | ||
导航到符号 | Ctrl + Alt + Shift + N | ||||
快速切换编辑器 | Ctrl + E | 切换器 | Ctrl + Tab | ||
最近的文件 | Ctrl + E | ||||
公开声明 | F3 | 导航到声明 | Ctrl + B | ||
开放类型层次结构 |
F4 |
导航到类型层次结构 | Ctrl + H | ||
显示UML弹出窗口 | Ctrl + Alt + U | ||||
快速概述 | Ctrl + O | 文件结构 | Ctrl + F12 | ||
背面 | Ctrl+[ | 背面 | Ctrl+Alt+Left | ||
前进 | Ctrl+] | 前进 | Ctrl+Alt+Right |
调用层次结构
IntelliJ IDEA和Eclipse都提供了允许您检查层次结构和探索源文件结构的功能。例如,Call Hierarchy特性显示了所选方法的所有调用者和被调用者。
在Eclipse中,可以通过按Ctrl+Alt+H来访问它,在IntelliJ IDEA中,使用Ctrl+Alt+H快捷键。
除了调用层次结构,IntelliJ IDEA还可以构建方法层次结构(Ctrl+Shift+H)和类型层次结构(Ctrl+H),您可以在源代码层次结构中找到更多信息。
代码格式化
IntelliJ IDEA代码格式化规则(可通过 Settings | Editor | Code Style)与Eclipse中的规则相似,有一些小区别。您可能需要注意,Use tab character 选项是禁用的, Indent size可能不相同等。
如果您想导入Eclipse格式化器设置,请转到settings | Editor | Code Style | Java,单击Show Scheme Actions按钮,单击import Scheme并选择导出的Eclipse格式化器设置(XML文件)。
请注意,IntelliJ IDEA和Eclipse中的代码样式设置可能存在一些差异。例如,不能告诉IntelliJ IDEA在后面加上空格(而不是在前面),如果您希望IntelliJ IDEA使用Eclipse格式化器,请考虑安装Eclipse代码格式化器插件。
|
|
||||
---|---|---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 | ||
格式 | Ctrl + Shift + F | 重新格式化代码 | Ctrl + Alt + L |
运行并重新加载更改
与Eclipse类似,IntelliJ IDEA也有运行/调试配置对话框,您可以从主工具栏或主菜单访问该对话框,比较一下相关的快捷方式:
Eclipse | IntelliJ IDEA | ||
---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 |
run |
Ctrl+Shift+F11 |
run | Shift+F10 |
调试 | Ctrl+F11 | 调试 | Shift+F9 |
制造 | Ctrl + F9 | ||
更新应用程序 | Ctrl + F10 |
默认情况下,IntelliJ IDEA不会自动编译更改的文件(除非您将其配置为这样做),这意味着IDE不会自动重新加载更改,要重新加载更改的类,请通过Ctrl+F9显式调用Build操作。如果您的应用程序在服务器上运行,除了重新加载之外,还可以通过Ctrl+F10使用更新应用程序操作。
调试
Eclipse和IntelliJ IDEA中的调试器类似,但使用不同的快捷方式:
Eclipse | IntelliJ IDEA | ||||||
---|---|---|---|---|---|---|---|
动作 | 快捷方式 | 动作 | 快捷方式 | ||||
进入 | F5 | 进入 | F7 | ||||
智能步入 | Shift + F7 | ||||||
跨过 | F6 | 跨过 | F8 | ||||
走出 | F7 | 走出 | Shift+F8 | ||||
重新开始 | F8 | 重新开始 | F9 | ||||
Toggle breakpoint |
|
Toggle breakpoint |
|
||||
计算表达式 | Ctrl + Shift + I | 计算表达式 | Alt + F8 |
应用程序服务器
在IntelliJ IDEA中部署到应用服务器与您可能在Eclipse中使用的部署或多或少类似。
将应用程序部署到服务器
1.通过Project Structure | Artifacts (Maven和Gradle项目自动完成)。
2.通过Settings | application Servers配置应用服务器。
3.创建一个运行配置,然后指定要部署的构件和要部署到的服务器。
通过Build | Build artifacts构建和重建您的工件。
构建工具
IntelliJ IDEA不提供用于编辑Maven和Gradle配置文件的可视化表单。一旦导入或创建了Maven或Gradle项目,您就可以编辑或构建它的pom.xml,Gradle文件直接在编辑器中。稍后,您可以根据需要将项目模型与更改的文件同步,或者自动将更改导入到新的构建文件中,对底层构建配置的任何更改最终都需要与IntelliJ IDEA中的项目模型同步。
对于特定于Maven或Gradle的操作,IntelliJ IDEA提供了和,除了项目结构之外,这些工具窗口还提供了目标或任务列表以及带有相关操作的工具栏,对于特定于Maven或Gradle的操作,IntelliJ IDEA提供了Maven项目工具窗口和Gradle工具窗口。除了项目结构之外,这些工具窗口还提供了目标或任务列表以及带有相关操作的工具栏。
对于手动同步,使用Maven或Gradle工具窗口工具栏上的相应操作:App actions refresh。
运行目标/任务
使用Maven或Gradle工具窗口来运行任何项目目标或任务,当这样做时,IntelliJ IDEA创建相应的运行配置,您可以在以后重用它来快速运行目标或任务。
任何目标或任务都可以附加到运行配置,当您的目标或任务生成应用程序所需的特定文件时,这可能很有用。
Maven和Gradle工具窗口都提供了 Run Task 操作,它运行Maven或Gradle命令的方式与您使用控制台运行它的方式类似。
配置工件
如果您在pom.xml或build.gradle文件中配置了WAR构件,IntelliJ IDEA会自动在Project Structure | artifacts中配置相应的构件。
请注意,当您编译项目或构建工件时,IntelliJ IDEA会使用自己的构建过程,这可能更快,但不能保证100%准确。如果在编译IntelliJ IDEA项目时发现结果不一致,请尝试使用Maven目标或Gradle任务代替。
版本控制系统
IntelliJ IDEA支持Git、Mercurial、Subversion、Perforce等版本控制系统(VCS)。
配置VCS根目录
当您打开一个位于VCS根目录下的项目时,IntelliJ IDEA会自动检测到这个根目录,并建议将其添加到项目设置中。
如需更改版本控制相关的工程设置(或手动添加VCS根用户),请进入Settings | Version Control。
IntelliJ IDEA与多存储库项目完美配合。只需将您的项目目录映射到VCS中, IDE将负责其余的工作。对于和, IDE甚至会为您提供同步的分支控制,这样就可以同时在多个存储库上执行分支操作。
编辑VCS设置
每个VCS可能需要特定的设置,例如,Path to Git executable,GitHub/Perforce等。
配置完VCS设置后,您将看到 Version Control 工具窗口Alt+9。
检查项目
要从VCS中签出项目,请在欢迎界面或VCS主菜单中单击 Get from Version Control。
本地更改
Local Changes视图显示您的本地更改:分阶段的和非分阶段的。为了简化变更管理,所有变更都会被组织到变更列表中,对源文件所做的任何更改都会自动包含到活动更改列表中,您可以创建新的变更列表,删除现有的变更列表(Changes除外),并在变更列表之间移动文件。
在Version Control工具窗口的“Alt+9”或“项目”工具窗口的Local Changes选项卡中右键单击要忽略的未版本文件或文件夹,然后选择“Git | Add to .gitignore”或“Git | Add to . Git /info/exclude”。
如果您希望忽略的文件也显示在 Local Changes视图中,请单击工具栏上的“查看选项”按钮并选择 Ignored Files。
历史记录
Git工具窗口的Log选项卡允许查看和搜索提交的历史记录。您可以根据存储库、分支、用户、日期、文件夹甚至描述中的短语对提交进行排序和筛选,找到一个特定的提交,或者只是浏览历史和分支树:
处理分支
IntelliJ IDEA允许创建,切换,合并,比较和删除分支,对于这些操作,可以使用VCS主菜单或上下文菜单中的Branches,或者VC VCS operations popup (可以通过按Alt+ '或状态栏右侧的小部件调用它)。
所有VCS操作都可以从VCS主菜单中获得:
动作 | 快捷方式 |
---|---|
版本控制工具窗口 | Alt+9 |
VCS操作弹出窗口 | Alt+` |
提交更改 | Ctrl+K |
更新项目 | Ctrl+T |
推送提交 | Ctrl+Shift+K |