整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

01-IDE工具之IDEA的简介、下载与安装、初步配

01-IDE工具之IDEA的简介、下载与安装、初步配置

DEA简介

IDEA全称是IntelliJ,是JetBrains公司推出一个集成开发工具,是Java开发工具中的翘楚,基于这个开发工具可以快速开发我们的Java相关项目。相对于其它开发工具,IDEA提供了更加强大的提示功能,全面的快捷键操作,模板代码以及快速的资源整合。

下载与安装

准备工作

  • 硬件(Hardware)要求1)内存8G或以上
    2)硬盘磁盘空闲空间大于5GB,最好有一块固态硬盘。
  • 软件(Software)要求1)Microsoft Windows 8 or later
    2)macOS 10.13 or later
    3)Any Linux distribution
    4)Set Up and Config JDK1.8

IDEA工具下载

IDEA官网下载地址如下:

https://www.jetbrains.com/idea/

基于操作系统的不同,可以选择不同平台下的IDEA,例如:

说明:至于社区版(功能受限的免费版)/还是商业版(可试用)自行决定。

IDEA工具安装

IDEA 下载以后需要进行安装进行使用。假如只是下载的解压版本,则可以将其拷贝到非中文目录,然后直接解压进行应用。假如下载的可执行程序(例如windows平台下的.exe文件)则直接启动可执行程序,然后按照提示,一步一步安装即可。

IDEA官方帮助文档文档参考如下:

https://www.jetbrains.com/help/idea/discover-intellij-idea.html

IDEA工具启动

找到解压或安装好的idea根目录,然后进入bin目录找到idea.bat或者idea64.exe文件,然后直接双击进行启动,第一个启动欢迎界面如图所示:

在第一个界面呈现过程中,其实是IDEA底层在进行启动初始化,假如是第一次启动,稍等片刻会进入第二个界面,例如:

在第二个界面中,我们先选择创建新项目(New Project),然后进入创建项目的界面,这里我们先选择创建空项目,如图所示:

选择好Empty Project以后,点击next进入项目的设计,如图所示:

在上面图中,点击Finish按钮完成项目的创建,进入IDEA的项目工作窗口,如图所示:

IDEA 基本配置

Appearance(显示)主题配置

KeyMap(快捷键)配置

Editor(编辑区)配置

General 配置

滚轮滑动,改变字体大小配置,如图所示:

包导入配置,如图所示:

行号与方法分隔符配置,如图所示:

代码提示配置,如图所示:

代码补全配置,如图所示:

Font 配置

代码编辑区字体配置,如图所示:

控制台字体配置,如图所示:

Color 配置

代码中的注释颜色配置,如图所示:

File 编码配置

Build 执行配置

Compiler(编译配置)

自动编译配置(可选),选上了可能会比较慢,如图所示:

Build Tools 中的Maven配置

Maven 初始化配置(假如已有配置好的,可以使用已有的配置)

找到你磁盘中的maven根目录下的conf目录,并打开conf目录下的settings.xml文件,然后进行如下配置:

配置maven本地库(从maven远程服务器下载的资源存储到的位置)

<localRepository>${user.home}/.m5/repository</localRepository>

配置maven私服(配置到mirrors标签内部)。

   <mirror>
    <id>aliyun</id>
    <name>aliyun for maven</name>
    <mirrorOf>*</mirrorOf>
    <url>https://maven.aliyun.com/repository/public</url>
   </mirror>

配置maven中的profile(配置到profiles标签内部),设置JDK编译和运行版本。

<profile>
   <id>jdk-1.8</id>
   <activation>
    <activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
   </activation>
   <properties>
       <maven.compiler.source>1.8</maven.compiler.source>
       <maven.compiler.target>1.8</maven.compiler.target>
       <maven.compiler.compilerVersion>1.8
       </maven.compiler.compilerVersion>
   </properties>
 </profile>

IDEA 中集成Maven配置

找到Build Tools/Maven选项,然后在IDEA中集成本地maven配置。如图所示:

Version Control 配置

安装gitee插件

Gitee 安装成功以后,检查是否在Version Control中有Gitee选项,如图所示:

点击Version Control的Gitee选项,进入Gitee配置,如图所示:

在Gitee配置界面,选择添加账户(Add Account),进入账户配置界面,如图所示:

在Gitee账户配置界面,进行连接Gitee平台的账户配置(要事先注册好Gitee平台账户),然后点击Log in进行登陆,登陆成功以后会呈现如下界面,如图所示:

总结(Summary)

本小节主要是对IDEA开发工具进行了一个简单介绍,然后基于我们后续要做的应用,做了一个初步配置,基于这个配置我们后续可以更好的展开项目的创建、测试等。

在过去几年中,JetBrains的IntelliJ很快成为Java开发人员的顶级IDE。使IntelliJ对Java开发人员如此有吸引力的一个特性是使用插件扩展和创建新功能的能力。在本教程中,我们将介绍如何编写IntelliJ插件来演示扩展IDE的几种方法。

虽然本文主要关注IntelliJ插件,但所有JetBrains IDE都共享公共代码。因此,这里使用的许多技术可以应用于JetBrain的其他IDE,如PyCharm、RubyMine等。

插件功能

Intellij插件按照功能可分四类:

  1. 自定义语言:针对不同语言,能够编写、解释和编译
  2. 框架:支持第三方框架,如Spring
  3. 工具:与外部工具(如Gradle)集成
  4. 用户界面附加组件:新菜单项、工具窗口和按钮等

创建一个插件项目

使用 Plugin DevKit(https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/using_dev_kit.html)来创建工程,DevKit提供了自定义SDK类型和一组用于在IDE中构建插件的操作

  • 创建工程

在Intellij的菜单栏,选择 File | New | Project,New Project 框里选择 IntelliJ PLatform Plugin

New Project

在project SDK选项框选择合适的Intellij SDK,然后下一步,填上project name,完成,就创建好一个Intellij plugin 工程了。

  • 实现一个自定义的Plugin

创建自定义Action

如果需要了解更多action 相关的东西,请访问官方文档 https://www.jetbrains.org/intellij/sdk/docs/basics/action_system.html

创建自定义的action,需要继承抽象类AnAction,并且需要重写方法AnAction.update()AnAction.actionPerformed()

  • update()方法里面实现开启和禁用事件逻辑
  • actionPerformed()方法里面实现我们需要做的具体业务逻辑
package com.test.plugin;

import com.intellij.ide.BrowserUtil;
import com.intellij.lang.Language;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class SearchBaiduAction extends AnAction {
    /**
     * Only make this action visible when text is selected.
     * <p>
     * The update method below is only called periodically so need
     * to be careful to check for selected text
     * https://jetbrains.org/intellij/sdk/docs/basics/action_system.html#overriding-the-anactionupdate-method
     *
     * @param e
     */
    @Override
    public void update(AnActionEvent e) {
        // Get required data keys
        final Project project=e.getProject();
        final Editor editor=e.getData(CommonDataKeys.EDITOR);

        // Set visibility only in case of existing project and editor and if a selection exists
        e.getPresentation().setEnabledAndVisible(project !=null
                && editor !=null
                && editor.getSelectionModel().hasSelection());
    }

    @Override
    public void actionPerformed(AnActionEvent e) {
        final String selectedCode=getSelectedCode(e);
        final String languageTag=getLanguageTag(e);

        String url=getUrl(languageTag, selectedCode);
        if (url !=null) {
            BrowserUtil.browse(url);
        }
    }

    private String getSelectedCode(AnActionEvent e) {
        final Editor editor=e.getRequiredData(CommonDataKeys.EDITOR);
        return editor.getSelectionModel().getSelectedText();
    }

      private String getLanguageTag(AnActionEvent e) {
        String languageTag="";
        PsiFile file=e.getData(CommonDataKeys.PSI_FILE);
        if (file !=null) {
            Language lang=file.getLanguage();
            languageTag=lang !=null ? lang.getDisplayName().toLowerCase() : null;
        }
        return languageTag;
    }

    private String getUrl(String languageTag, String selectedCode) {
        try {
            StringBuilder sb=new StringBuilder("https://www.baidu.com/s?wd=");
            if (languageTag !=null) {
                sb.append(" " + URLEncoder.encode(languageTag, "UTF-8"));
            }
            sb.append(URLEncoder.encode(selectedCode, "UTF-8"));
            return sb.toString();
        } catch (UnsupportedEncodingException unsupportedEncodingException) {
            unsupportedEncodingException.printStackTrace();
            return null;
        }
    }
}

如果action被禁用了,那么actionPerformed方法不会被执行

actionPerformed()方法

 @Override
    public void actionPerformed(AnActionEvent e) {
        final String selectedCode=getSelectedCode(e);
        final String languageTag=getLanguageTag(e);

        String url=getUrl(languageTag, selectedCode);
        if (url !=null) {
            BrowserUtil.browse(url);
        }
    }

在该方法中,我们通过getSelectedCode()方法拿到用户选择的文本,通过刚发getLanguageTag()获取当前文本语言,比如java,js,go等。然后通过getURL()方法组装url,最后通过BrowserUtil.browse(url) 打开浏览器,并访问给的url。在我们demo里面,我们将用选择的文本在baidu里面进行搜索。

获取Editor中选择的文本

你需要使用SelectionModel对象获取选择的文本

private String getSelectedCode(AnActionEvent e) {
        final Editor editor=e.getRequiredData(CommonDataKeys.EDITOR);
        return editor.getSelectionModel().getSelectedText();
    }

获取当前文件的语言

从event中通过CommonDataKeys.PSI_FILE key获取到PsiFile对象,然后再从PsiFile中获取到Language。

   private String getLanguageTag(AnActionEvent e) {
        String languageTag="";
        PsiFile file=e.getData(CommonDataKeys.PSI_FILE);
        if (file !=null) {
            Language lang=file.getLanguage();
            languageTag=lang !=null ? lang.getDisplayName().toLowerCase() : null;
        }
        return languageTag;
    }
  • 注册事件

有两种方式可以注册我们自定义的事件:1. plugin.xml中配置,2.代码中注册

在plugin.xml文件中注册事件:

<actions>
    <action
            id="Codever.Search.Editor"
            class="com.test.plugin.SearchBaiduAction"
            text="Search on Baidu"
            description="Search on Baidu"
    >
      <add-to-group group-id="EditorPopupMenu"/>
    </action>
    <action
            id="Codever.Search.Console"
            class="com.test.plugin.SearchBaiduAction"
            text="Search on Baidu"
            description="Search on Baidu">
      <add-to-group group-id="ConsoleEditorPopupMenu"/>
    </action>
  </actions>

更多事件注册信息请查看官方文档 https://plugins.jetbrains.com/docs/intellij/basic-action-system.html?from=jetbrains.org#registering-actions-in-pluginxml

  • 运行插件

在Idea中运行或者debug插件是非常简单的一件事

配置

运行

结果

DEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

俗话说:"工欲善其事必先利其器",今天准备和大家一起分享一下实际工作中能提升幸福感和工作效率的IDEA插件。

废话不多说,let's go !!!

1Alibaba Java Coding Guidelines

【阿里巴巴代码规范检查插件】

在你需要检查的代码上面,点击右键,选择编码规约扫描

将会出现如下所示的检查结果,并会给出编码规范和提示:

2GsonFormat

【jsonToBean】

在平时的开发中,将json转为Bean

3A8Translation

【翻译的插件】

选中你要翻译的汉语或英文,点击鼠标右键,选择Translate, (快捷键是Alt+T)就会实现翻译,不用再去切换屏幕使用翻译软件翻译了。

4Maven Helper

【分析依赖冲突的插件】

此插件可用来方便显示maven的依赖树,和显示冲突,在我们梳理依赖时帮助很大。

5Free Mybatis plugin

【增强idea对mybatis支持的插件】

生成mapper xml文件 快速从代码跳转到mapper及从mapper返回代码 mybatis自动补全及语法错误提示 集成mybatis generator gui界面 这个插件超级实用,可以从mapper接口跳转到mybatis的xml文件中,还能找到对应地方

6Grep Console

【日志高亮显示插件】

可以Ctrl + Alt +S Other Settings进行配色(颜色参考请搜索:电脑最护眼的色彩、显示屏亮度亦如此)

7Lombok

当我们创建一个实体时,通常对每个字段去生成GET/SET方法,但是万一后面需要增加或者减少字段时,又要重新的去生成GET/SET方法,非常麻烦。可以通过该插件,无需再写那么多冗余的get/set代码。

注意:需要在pom引入依赖

<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

8Nyan progress bar

基于Idea使用的漂亮进度条。把你的加载进度条全都变成彩虹和猫咪

9FindBugs-IDEA

【Bug检查插件】

在文件上或文件里面点击鼠标右键,选择FingBugs

简单的bug能给你快速找回来,什么NPE啥的,小儿科!推荐!!(嗓门大就说一遍)

10Key Promoter X

你还在为记不住快捷键烦恼吗,Key Promoter X可以帮助你快速记住常用的快捷键。当你在idea中用鼠标点击菜单,它可以显示对应的快捷键以及点击次数。使用一段时间后有助于过渡到更快、无鼠标的开发。

11JavaDoc

在项目中经常要求写代码注释,否则不能通过代码门禁,JavaDoc工具可以一键生成注释。

插件安装成功后在菜单栏 code -> JavaDocs可以找到

自动生成注释效果如下:

12ignore

项目开发中通常会使用到git进行版本管理,在提交代码时经常有人将本地的不必要的文件提交到代码仓库中,使用.ignore插件可以很好解决这个问题。插件安装完成后会在项目中生成一个.ignore文件,编辑该文件忽略一些动态生成的文件,如class文件,maven的target目录等。

13RainbowBrackets

彩虹括号,代码中有多个括号会显示不同的颜色。

14Activate-power-mode

在敲代码时有抖动酷炫的特效,非常适合给前端小姐姐表演特技。(坏笑)

15CodeGlance

16GenerateAllSetter

  • 通过alt+enter对变量类生成对类的所有setter方法的调用
  • 当两个对象具有相同的字段时生成一个转换器
  • 当returnType为List Set Map时生成默认值
  • 在所有getter方法上生成对assertThat的调用

17RestfulToolkit

  • 根据 URL 直接跳转到对应的方法定义 ( 快捷键搜索 Ctrl + Alt + N 或者 Ctrl + \ ); —这个个人感觉非常好用,和Ctrl + F一样重要。
  • 提供了一个 Services tree 的显示窗口;
  • 一个简单的 http 请求工具;
  • 在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数…
  • 其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。

18JRebel

热门部署插件,让你在修改完代码后,不用再重新启动,很实用!但是,不是免费的,需要大家发挥下聪明才智自行百度破解!

19Json Parser

厌倦了打开浏览器格式化和验证JSON?为什么不安装JSON解析器并在IDE中使用离线支持呢?JSON解析器是一个用于验证和格式化JSON字符串的轻量级插件。

20aiXcode & codota

aiXcoder是一个强大的代码完成器和代码搜索引擎,基于最新的深度学习技术。它有可能向您推荐一整套代码,这将帮助您更快地编写代码。aiXcoder还提供了一个代码搜索引擎,以帮助您在GitHub上搜索API用例。

类似功能的插件还有codota,codota基于数百万个开源Java程序和您的上下文来完成代码行,从而帮助您以更少的错误更快地进行编码。新版本的codota提供以下功能:

  • 全线AI自动完成
  • 内联和相关代码示例
  • 根据用户自己的编码实践进行编码建议
  • 不用担心你的代码会被公开。codota不会将你的代码发送到codota服务器,它只会从当前编辑的文件中发送最少的上下文信息,从而使codota能够根据你当前的本地范围进行预测。

比如我想知道list.stream.map(…)方法的参考使用,只需要光标定位在map上,然后右键选择菜单“Get relevant examples”或者使用快捷键“Ctrl + Shift + O”就可以快速搜索出来很多示例,非常方便。

来源:blog.csdn.net/CSDN_SAVIOR/article/details/122505538