Intellij-Idea-导入多个maven项目并且通过父工程引入子工程

当一个项目包含多个子项目时,则需要按照父子关系导入。1、选择已存在文件Module from Existing Sources 2、选中项目的根目录选中项目的根目录,点击OK 3、选择Maven这里默认选择Ceate module from existing sources,但是我们要选择Import module from external model,然后选择Maven,点击next。 4、勾选递归搜索项目勾选 Search for projects recursively(递归搜索项目),点击next。 5、select profilesselect profiles,可以选,也可以直接跳过,直接点next。 6、点击finish 7、自动导入maven然后右侧就会增加显示新导入的maven项目了。

June 30, 2020 · 1 min · jiezi

IDEA-20201最新激活码亲测有效可激活至2089年

分享一个idea 2020.1最新永久激活码、注册码(亲测有效,可激活至2089年,持续更新~). 来来回回在网上找了很多激活码,基本都是不能用了,也是醉了,终于通过 google 搜索找到一个能用的,已成功激活到2089年辣,记录一下: https://www.exception.site/essay/how-to-free-use-idea-20201记录于 2020年5月30日,无图无真相,上个激活成功后的效果图,有需要的小伙伴不妨试一试:

May 31, 2020 · 1 min · jiezi

IDEA通过Maven打包JavaFX工程OpenJFX11

1 概述最近研究JFX,写出来了但是打包不了,这。。。尴尬。。。IDEA的文档说只支持Java8打成jar包:尝试过直接使用Maven插件的package,不行,也尝试过Build Artifacts,也不行,各种奇奇怪怪的问题。包括下图中的 Error....fx:deploy is not available in this JDK不过幸好文档末尾提到可以使用一些第三方工具:因此记录一下使用IDEA打包JFX11工程的过程。 2 环境IDEA 2020.1OpenJDK 11OpenJFX 11只需安装IDEA与JDK即可,JFX可以在pom.xml中引入。 3 创建工程选择Maven,选择Create from archetype,然后Add Archetype并填上GroupId: org.openjfx与ArtifactId: javafx-maven-archetypes还有version: 0.0.1下一步自定义,这里为了方便就直接默认了。然后修改archetypeArtifactId为 javafx-archetype-fxml完成即可。 4 检查文件Maven同步完后,检查项目目录下的module-info.java与pom.xml,其中pom.xml不应该是下图这样的:而应该是这样的,包含了javafx.controls与javafx.fxml依赖,还有javafx-maven-plugin插件:同时src下的module-info.java应该长这样:module-info.java包含了所需要的javafx.controls与javafx.fxml这两个模块。 5 修改插件依赖默认的javafx-maven-plugin版本应该为0.0.1:整个去掉,修改为: <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.4</version> <configuration> <stripDebug>true</stripDebug> <compress>2</compress> <noHeaderFiles>true</noHeaderFiles> <noManPages>true</noManPages> <launcher>launcher</launcher> <jlinkImageName>output</jlinkImageName> <jlinkZipName>outputzip</jlinkZipName> <mainClass>org.openjfx.App</mainClass> </configuration></plugin>其中launcher为可执行文件名,jlinkImageName为Image输出目录名,jlinkZipName为zip文件名,mainClass为主类。 6 运行并打包从右侧栏的Maven通过javafx插件运行并打包: 7 测试根据修改插件时的目录,进入对应的target下的子目录直接运行即可: 项目目录/target/output/bin/launcher注意这个是跨平台的,只需具备JDK11环境即可,发布只需要把zip文件发布。 8 demogithub码云9 扩展阅读这篇文章是OpenJFX的文档,主要介绍了: 通过三种方式(JFX+Maven+Gradle)运行Hello World构建运行镜像(CLI+Maven+Gradle+自定义镜像)IntelliJ/NetBeans/Eclipse通过三种方式(IDE自身+Maven+Gradle)运行与打包JFX链接戳这里。

May 30, 2020 · 1 min · jiezi

IDEA-配置文件位置

1 IDEA 2020.1 以上1.1 Win语法: %APPDATA%\JetBrains\<product><version>Win上的APPDATA默认位置如下: C:\Users\用户名\AppData\Roaming例子: C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2020.11.2 MacOS语法: ~/Library/Application Support/JetBrains/<product><version>例子: ~/Library/Application Support/JetBrains/IntelliJIdea2020.11.3 Linux语法: ~/.config/JetBrains/<product><version>例子: ~/.config/JetBrains/IntelliJIdea2020.12 IDEA 2019.3.x以下2.1 Win语法: %HOMEPATH%\\.<product><version>\configWin的HOMEPATH默认为: \Users\用户名注意,无盘符。例子: C:\Users\用户名\.IntelliJIdea2019.3\config2.2 MacOS语法: ~/Library/Preferences/<product><version>例子: ~/Library/Preferences/IntelliJIdea2019.32.3 Linux语法: ~/.<product><version>/config例子: ~/.IntelliJIdea2019.3/config

May 28, 2020 · 1 min · jiezi

更改输出到-tomcat-webapps-目录下的文件夹名

项目 .idea 目录下 workspace.xml ,修改 CONTEXT_PATH <component name="RunManager"> <configuration name="Tomcat 7.0.69" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 7.0.69" ALTERNATIVE_JRE_ENABLED="false" nameIsGenerated="true"> <option name="OPEN_IN_BROWSER_URL" value="http://localhost/form/" /> <option name="COMMON_VM_ARGUMENTS" value="-Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m" /> <option name="UPDATING_POLICY" value="restart-server" /> <deployment> <artifact name="form"> <settings> <option name="CONTEXT_PATH" value="/form" /> </settings> </artifact>

May 27, 2020 · 1 min · jiezi

如何使用IDEA创建项目并且上传到GitHub

在 GitHub中 注册创建账号 :https://github.com下载安装 Git : https://git-scm.com安装成功后打开 Git Bash,输入下列命令,设置 Git 全局用户名和邮箱。 安装完成后,打开 Git Bash 控制台,进行如下设置 :git config --global user.name "你的用户名称" # 请换成自己的名字 git config --global user.email "你的邮箱名称" # 请换成自己的用户名 继续在Git Bash控制台,设置 SSH Key : ssh-keygen -t rsa -C "你的用户名称" # 请换成自己的名字 然后一路回车,不要输入任何密码之类,生成 ssh key pair。会在 C 盘生成目录.ssh ,里面有两个文件:id_rsa (私钥), id_rsa.pub(公钥)。 打开 GitHub 页面,右边点击头像选择 Settings ---> SSH and GPG keys,然后点击 New SSH Key,将公钥的内容复制填写进去。写上 title 。注意:需要 copy 公钥最开头的 “ssh-rsa ” 这几个字。 ...

November 4, 2019 · 1 min · jiezi

使用idea实现品优购项目搭建

1、使用idea实现品优购项目搭建本篇文章只针对品优购第一天使用 IDEA 搭建项目。看到网上很多人都不会搭建,所以今天小编就在这手把手教大家使用 IDEA 搭建品优购的第一天项目。来不及了说了,兄弟们快上车。首先明确每个项目的打包方式: pinyougou-parent(pom)、pinyougou-common(jar)、pinyougou-dao(jar)、 pinyougou-manager-web(war)、pinyougou-pojo(jar)、pinyougou-sellergoods-interface(jar)、 pinyougou-sellergoods-service(war)、pinyougou-shop-web(war)。 2、开始创建 Maven 工程创建 pinyougou-parent 父工程 点击 Create New project ---> Maven ---> 创建 Maven 项目。 创建项目成功后,删除 src 文件夹,只留下 pom 文件再引入依赖即可。创建所有打包方式为 jar 包形式的子项目(只举一个例子) 切记一定要按 pinyougou-parent ---> New ---> Module和创建父工程一样什么也不用选择,直接下一步创建 Maven 工程。 成功后的项目如下所示,所有打包方式为 jar 包形式的子项目,就是这样创建即可。 创建所有打包方式为 war 包形式的子项目(只举一个例子) 切记一定要按 pinyougou-parent ---> New ---> Module到此这个项目的创建还没有结束哦!! 第一天所有创建好的项目就如下图所示 每个形式的创建方式我都是举了一例。因为所有的品优购项目创建方式都是以上方式创建的。 以上就是品优购项目使用 IDEA 创建的过程,自己实践的时候,按照视频添加依赖即可。如果你还是创建不成功的话,请访问我的 Github 地址,只需要拉取 master 分支的代码到本地即可。 master 分支就是第一天搭建的项目,就是为了防止有些朋友不会搭建,头发一根根掉下来。 https://github.com/RookieMZL/pinyougou-parent

November 4, 2019 · 1 min · jiezi

IDEA-201924-激活方法激活到-2089年亲测有效

IDEA 的更新速度太快了,到笔者写这篇文章的时候,已经更新到 2019.2.4 版本了,下载下来后,用以前那种直接在网上随便找个激活码,就想激活成功的方法,已经一去不复返了。 于是,笔者试了好了种方法,基本都是激活失败,心累~。 柳暗花明又一村,最终还是让笔者找到了 2019.2.4 版本的激活教程,要同时结合激活码与破解补丁才行,具体参考下面这篇文章: ⬇️⬇️⬇️ 《IDEA 2019.2.4 激活方法,激活到 2089 年,亲测有效~》 又可以愉快的玩耍了~

November 3, 2019 · 1 min · jiezi

我已经离不开idea了

为什么选择ideaidea是jetbrain公司开发的一款付费的java编辑器,我之前是用eclipse开发的,自从用了idea后,就完全离不开它了。主要原因是除了idea自身强大的功能以外,还有许多的插件。接下来我主要介绍几款我觉得好用的插件。 外观power-model II写起代码火焰沸腾的感觉,一个字:爽。不过貌似会造成idea卡顿。需要设置idea的内存 backgroundImagePlus可以设置idea的背景图片,这个插件用来装逼还可以。 nyan progress bar装逼神器,进度条变成ketty 规范sonarlint根据sonarqube的要求来编写干净的代码。 pmd同样是一款规范代码的插件,使用效果一般,公司要求用这个插件,不通过就不能合代码。图片暂无 findbugs神器不解释,帮我解决了一些明显的bug,比如空指针风险。。 checkstyle也是一款代码规范的插件,唯一的特点是可以上传自定义的代码规范。 Alibaba Java Coding Guidelines按照阿里的规约来约束代码风格。 效率lombok有了这个插件,就再也不用显式地声明不限于setter和getter方法了。 generateallsetter一键调用类的全部setter方法,写单元测试造数据神器,不过我觉得lombok的建造者模式也很好用。 Free Mybatis plugin从mapper接口的方法直接跳转到对应的xml文件中的方法 MyBatisCodeHelperPro有点mybatis generator的味道,但是使用更简单,图形化界面操作 CodeGlance当你的类上千行的时候,在你往下拖拽找对象的时候,是不是感觉挺累的,有个这个插件,可以查看缩略图一样,快速切换到自己需要去的地方,飞翔的感觉。 restfultoolkitJava WEB开发必备,再也不用全局搜索RequestMapping了。 GenerateSerialVersionUID自动生成序列化ID。 translation翻译插件,选中然后ctrl+shift+y,最新版本还有单词本功能,可以把翻译的单词标记到单词本中。 智能编程aixcoder根据你的编码,不断学习的插件,代码写的越多,他越懂你,没网就gg。https://www.aixcoder.com/#/

October 6, 2019 · 1 min · jiezi

IDEA中执行maveninstall时忽略找不到无关类的错误

IDEA中执行maven:install时忽略找不到无关类的错误package com.sun.org.apache.xml.internal.security.signature does not exist某些项目因找不到无关紧要的类而编译不过(如下图),其实只要在设置以下两步就可让项目顺利运行。 1.设置IDEA的编译器2.设置Maven为no error check

October 4, 2019 · 1 min · jiezi

IDEA-201923破解激活教程激活到2089年8月亲测有效

本来笔者这边是有个正版激活码可以使用的,但是,2019.9月3号的时候,一些小伙伴反映这个注册码已经失效了,于是拿着自己的 IDEA, 赶快测试了一下,果不其然,已然是不能用了。 好在,笔者又找到了新的激活方法。按照此教程,能成功激活到 2089 年 8 月,无图无真相: 在激活之前,主要注意:无需改动 host 文件。 步骤如下: 开始激活1.打开已经安装好的 IDEA, 我们选择 30 天免费试用,先进去再说: 成功进入 IDEA 以后,我们随便创建一个项目/或者打开个旧的项目,点击顶部的 Help 菜单 -> Edit Custom VM Options: 添加破解补丁位置打开后,我们在最后一行添加如下配置: -javaagent:D:\jetbrains-agent.jar注意:D:\jetbrains-agent.jar 是我存放破解补丁的位置,你可以自定义成自己存放的位置,注意目录中不要带有中文。注意:因某些限制,最新激活码、破解补丁已放置在笔者公众号上,请关注微信公众号: 小哈学Java, 回复关键字:idea, 即可免费无套路免费激活码、破解补丁,持续更新中~。 打开激活框,移除之前的 License (非常重要)若你的 IDEA 已经使用了老的 License, 注意移除,否则会导致激活不成功。 如没有 Remove License 按钮,则不需要关心,直接看下一步。 重启 IDEA引入破解补丁以后,重启 IDEA。 填入激活码将公众号回复的激活码,填入进去: 注意:因某些限制,最新激活码、破解补丁已放置在笔者公众号上,请关注微信公众号: 小哈学Java, 回复关键字:idea, 即可免费无套路免费激活码、破解补丁,持续更新中~。添加的时候,要注意前后是否带有空格,有则需要去掉,点击 OK 按钮。 再次查看 IDEA 的过期时间,你就可以看到已经激活到 2089 年辣~ 祝您学习愉快~ ...

October 1, 2019 · 1 min · jiezi

IDEA-201922激活破解教程亲测有效持续更新中

本来笔者这边是有个正版激活码可以使用的,但是,2019.9月3号的时候,一些小伙伴反映这个注册码已经失效了,于是拿着自己的 IDEA, 赶快测试了一下,果不其然,已然是不能用了。 好在,笔者又找到了新的激活方法。按照此教程,能成功激活到 2089 年 8 月,无图无真相: 在激活之前,主要注意:无需改动 host 文件。 步骤如下: 开始激活1.打开已经安装好的 IDEA, 我们选择 30 天免费试用,先进去再说: 成功进入 IDEA 以后,我们随便创建一个项目/或者打开个旧的项目,点击顶部的 Help 菜单 -> Edit Custom VM Options: 添加破解补丁位置打开后,我们在最后一行添加如下配置: -javaagent:D:\jetbrains-agent.jar注意:D:\jetbrains-agent.jar 是我存放破解补丁的位置,你可以自定义成自己存放的位置,注意目录中不要带有中文。注意:因某些限制,最新激活码、破解补丁已放置在笔者公众号上,请关注微信公众号: 小哈学Java, 回复关键字:idea, 即可免费无套路免费激活码、破解补丁,持续更新中~。 打开激活框,移除之前的 License (非常重要)若你的 IDEA 已经使用了老的 License, 注意移除,否则会导致激活不成功。 如没有 Remove License 按钮,则不需要关心,直接看下一步。 重启 IDEA引入破解补丁以后,重启 IDEA。 填入激活码将公众号回复的激活码,填入进去: 注意:因某些限制,最新激活码、破解补丁已放置在笔者公众号上,请关注微信公众号: 小哈学Java, 回复关键字:idea, 即可免费无套路免费激活码、破解补丁,持续更新中~。添加的时候,要注意前后是否带有空格,有则需要去掉,点击 OK 按钮。 再次查看 IDEA 的过期时间,你就可以看到已经激活到 2089 年辣~ 祝您学习愉快~ ...

September 10, 2019 · 1 min · jiezi

Message-前言中不允许有内容

使用Pycharm创建项目,创建前、后都没有问题,当项目关闭了,在打开之前的项目都打不开,屏幕只是闪一下,但是打不开项目,找到idea的日志(默认的日志文件路径在C盘,当前用户所属目录的根目录下.pytharm/system/log )显示: 点一次闪一次一个报错,那就慢慢恢复自定义的设置吧,最后调试找到了是字符集编码设置的地方出了问题: 图中红色方框中的地方改称NO BOM,然后将项目中已经存在的.idea文件夹删除重新导入项目,以后就无虑了;

September 8, 2019 · 1 min · jiezi

IDEA-20192破解激活教程激活到2089年8月亲测有效持续更新中

当前最新版本 IDEA 2019.2.1 本来笔者这边是有个正版激活码可以使用的,但是,2019.9月3号的时候,一些小伙伴反映这个注册码已经失效了,于是拿着自己的 IDEA, 赶快测试了一下,果不其然,已然是不能用了。 好在,笔者又找到了新的激活方法。按照此教程,能成功激活到 2089 年 8 月,无图无真相: 在激活之前,主要注意:无需改动 host 文件。 步骤如下: 开始激活1.打开已经安装好的 IDEA, 我们选择 30 天免费试用,先进去再说: 成功进入 IDEA 以后,我们随便创建一个项目/或者打开个旧的项目,点击顶部的 Help 菜单 -> Edit Custom VM Options: 添加破解补丁位置打开后,我们在最后一行添加如下配置: -javaagent:D:\jetbrains-agent.jar注意:D:\jetbrains-agent.jar 是我存放破解补丁的位置,你可以自定义成自己存放的位置,注意目录中不要带有中文。注意:因某些限制,最新激活码、破解补丁已放置在笔者公众号上,请关注微信公众号: 小哈学Java, 回复关键字:idea, 即可免费无套路免费激活码、破解补丁,持续更新中~。 打开激活框,移除之前的 License (非常重要)若你的 IDEA 已经使用了老的 License, 注意移除,否则会导致激活不成功。 如没有 Remove License 按钮,则不需要关心,直接看下一步。 重启 IDEA引入破解补丁以后,重启 IDEA。 填入激活码将公众号回复的激活码,填入进去: 注意:因某些限制,最新激活码、破解补丁已放置在笔者公众号上,请关注微信公众号: 小哈学Java, 回复关键字:idea, 即可免费无套路免费激活码、破解补丁,持续更新中~。添加的时候,要注意前后是否带有空格,有则需要去掉,点击 OK 按钮。 再次查看 IDEA 的过期时间,你就可以看到已经激活到 2089 年辣~ 祝您学习愉快~ ...

September 7, 2019 · 1 min · jiezi

IDEA-20192注册码激活码亲测可用持续更新中

PS: 本激活码是正规 IDEA 2019.2注册码(激活码),无需修改 host 文件,直接激活即可~ 注意:本文使用的 Mac 系统作为演示环境, IDEA 版本为 2019.2 ,对于使用 Windowns 环境的童鞋同样有效哟,请放心食用。 背景一直用的 IntelliJ IDEA 2017 版本,但是工作中出现了一个诡异的问题,与 Idea 有关,始终解决不了,于是重装最新版的 IDEA, 版本号为 2019.2。 最新下载地址: https://www.jetbrains.com/idea/download 下载完成后,发现对于最新版,用 http://idea.lanyus.com/ 的注册码已然无效: 赫然显示着:Key is Valid. 开始激活 输入激活码激活,可以看到 Idea 最新的 2019.2 版本已经激活成功,开心的玩耍吧~ 激活码领取方式注意:因激活码使用人数过多,老的已经失效,最新激活码已放置在笔者公众号上,请关注微信公众号: 「小哈学Java」, 回复关键字:「idea」, 即可免费无套路免费正规激活码,持续更新中~。欢迎关注微信公众号: 小哈学Java

August 19, 2019 · 1 min · jiezi

IntelliJ-IDEA-20192-最新注册码-免费激活破解教程亲测有效持续更新中

PS: 本激活码是正规激活码,无需修改 host 文件,直接激活即可~ 注意:本文使用的 Mac 系统作为演示环境, IDEA 版本为 2019.2 ,对于使用 Windowns 环境的童鞋同样有效哟,请放心食用。 背景一直用的 IntelliJ IDEA 2017 版本,但是工作中出现了一个诡异的问题,与 Idea 有关,始终解决不了,于是重装最新版的 IDEA, 版本号为 2019.2。 最新下载地址: https://www.jetbrains.com/idea/download 下载完成后,发现对于最新版,用 http://idea.lanyus.com/ 的注册码已然无效: 赫然显示着:Key is Valid. 开始激活 输入激活码激活,可以看到 Idea 最新的 2019.2 版本已经激活成功,开心的玩耍吧~ 激活码领取方式注意:因激活码使用人数过多,最新激活码已放置在笔者公众号上,请关注微信公众号: 「小哈学Java」, 回复关键字:「idea」, 即可免费无套路免费正规激活码,持续更新中~。欢迎关注微信公众号: 小哈学Java

August 7, 2019 · 1 min · jiezi

IDEA关于springboot-Thymeleaf-热部署修改java文件无需手动编译重启

一、前言每次修改完java文件或者thmeleaf模版文件后,需要重新编译 rebuild 才能生效,这就显得很麻烦了。列表项目

July 12, 2019 · 1 min · jiezi

阿里资深技术专家的10年感悟

阿里妹导读:阿里有许多土话,比如“方法总比困难多”、“不淘汰自己就会被别人淘汰”、“你感觉不舒服的时候,就是成长的时候”。每一句都在激励我们向前。生活总不缺困难和磨练,痛苦的时候,只有转变思维,才能蜕变。今天,阿里巴巴资深技术专家无相分享他在阿里这10年来的几点感悟。今天很残酷,明天更残酷,后天很美好,熬过明天晚上,才能看到后天的太阳。 2019年的上半年,我密集地写了 tbbpm idea 插件,终于比较圆满地解决 idea 插件的开发问题。经过这件事,内心有股强烈的冲动,促使我写下这些年面对痛苦时,我的一些解决问题的方法和感悟。 1. 一个人走得快,一群人走得远“一个人走得快,一群人走得远”,这句话是阿里的土话。没有这些年的编程经历,不会深刻地感受这句话背后逻辑与力量。一个人持续做一件工作量较大且较长期的事情时,对心力的考验是很大的。当多人协同时,心力压力能够得到很大的缓解。 Knowledge is commonly socially constructed, through collaborative efforts toward shared objectives or by dialogues and challenges brought about by differences in persons' perspectives.Salomon 《The Costs and Benefits of Pair Programming》这篇论文的研究表明:结对编程能够改进设计质量,减少代码缺陷(代码行数减少,测试通过率更高),减少员工离职风险,提升软件技能。团队解决问题的速度变快,同时更加愿意坐到一起工作。 2. 当你不舒服,难受或陷于困境时,应该停下来思考在写 tbbpm idea 插件时,我花了三年(准确来说是3个春节)才写成,idea 的设计插件在业界无参考标准,不能很好地快速进行。记得在 eclipse tbbpm 插件时,因有业界源码参考,用了两个通宵原型就做出来了。Tbbpm 是一个闲暇时间的产物,只能利用春节这样的大长假才能开发。我希望自己能够在极短的时间内完成,然而,第一个春节与第二个春节都没有成功。在第三个春节时,关键的拖拽依然没有很好的搞定,心力已经接近憔悴。屡次失败之后,我不得不开始反思,是不是我做这件事的方式错了?是不是我的欲望已经超越了我当前的能力。 于是,那时候我停下手头的工作,冷静的地思考了2天。 这里举个当时的例子,idea 插件绘制表单的困境:因为用 swing 的方式来构建流程时,使用很多原生的库、GUI、JformBuilder,觉得画一个表单很困难, 尽管有些产品商已经用了,依然非常难用。静下来思考后,通过 google,找到了 miglayout 这个库,问题才得以解决。 困境是个人成长的最好机会,放弃、逃避、拒绝思考,就意味着放弃成长。如果遇到困境不自知,不解决,则会出现昨日所不知不能者,今日仍是不知不能;去年所不知不能者,今年仍是不知不能。 同时,最近有很多同学向我反馈,遇到困境时,通过个人的努力依然不能突破。这种情况下,可以尝试另外一条路,像《能力陷阱》这本书所说的一样,可以引入外部的力量。 3. 学习能力与思维模式是一个人的核心竞争力没有自学能力的人没有未来。李笑来 3.1 首先承认自己的不足 ...

July 11, 2019 · 1 min · jiezi

????intellij-idea常用快捷键01快速收起方法代码块

$$\color{green}{遇到问题:}$$ 在一个大型项目中,一个类动不动就上万行,方法中多则几千行。那如何快速知道这行代码所属那个方法?有没有快速收起方法的快捷键呢???? 答案是有的。 那下面就看看: Ctrl+”+/-”,当前方法展开、折叠Ctrl+Shift+”+/-”,全部展开、折叠如果没有成功,请注意:光标一定要在方法体中 那赶快收藏起来吧。 以后再也不用滚鼠标和拉滚动条了。 开发速度蹭蹭地涨 喜欢的点个小????哦。

July 10, 2019 · 1 min · jiezi

IDEA中通过maven更新依赖版本手动强制更新依赖

一、前言IntelliJ IDEA自动载入Maven依赖的功能很好用,但有时候会碰到问题,导致pom文件修改却没有触发自动重新载入的动作,此时需要手动强制更新依赖。二、手动更新依赖(idea+maven)(一)方法一右键单击项目;在弹出菜单中选择Maven|Reimport菜单项。(二)方法二点击idea右边的maven,选择项目,并点击左上角那个刷新按钮

July 9, 2019 · 1 min · jiezi

IDEA创建springboot项目图文配置

一、项目创建之前的准备在创建项目之前,首先要下载好jdk、IDEA编辑器以及配置好maven工具。IDEA编辑器和jdk安装很简单,从网上先下载好IDEA的软件包直接安装就行。springboot由于内部已经集成了tomcat,所以不需要单独下载tomcat。maven的简单认识和相关的配置: maven构建java项目工具介绍IDEA配置好了,就可以用IDEA进行编辑代码和创建项目,maven工具配置好后,可以直接配合IDEA来通过maven自动引入需要的jar包。二、IDEA创建springboot项目首先打开IDEA,点击create new project按照下图选择spring initializr初始化springboot,点击next修改artifact,就相当于项目名称,最好小写字母选择依赖,web依赖然后一直next,finished,这样就创建好springboot初始化的一个项目了创建好后,按照下图点击enable auto-import,代表maven自动下载pom.xml中的依赖

July 9, 2019 · 1 min · jiezi

全栈之路JAVA基础课程九解决IntelliJ-IDEA控制台输出中文乱码问题20190706v10

欢迎进入JAVA基础课程 博客地址:https://mp.csdn.net/mdeditor/...本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所总结,不管是刚接触JAVA开发菜鸟还是业界资深人士,都希望对广大同行带来一些帮助。若有问题请及时留言或加QQ:243042162。 寄语:无论生活、学习还是工作中,我们都要擅于利用工具。生活中我们要利用人情工具;学习中我们要利用书籍和各种信息化工具;工作中我们要借鉴和利用前辈的经验,唯有这样,才能使我们事半功倍。问题描述:IntelliJ IDEA 控制台输出中文乱码部分如图所示: 解决方法1.打开tomcat配置。 2.选择项目部署的tomcat,在配置项VM options文本框中输入-Dfile.encoding=UTF-8,点击Apply或OK即可。 3.尝试重启tomcat,乱码问题解决。 注意事项:若乱码问题依然存在,请尝试继续按以下步骤解决: 1.打开IntelliJ IDEA本地安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions这两个文件。 2.分别在这两个文件内容的末尾添加-Dfile.encoding=UTF-8 3.打开IntelliJ IDEA>File>Setting>Editor>File Encodings,将Global Encoding、Project Encoding、Default encodeing for properties files这三项都设置成UTF-8,点击OK或者Apply。 4.重启IntelliJ IDEA即可解决乱码问题。

July 6, 2019 · 1 min · jiezi

Alibaba-Cloud-Toolkit-一键部署插件使用入门

一、前言Cloud Toolkit官方介绍文档:https://www.aliyun.com/produc...Cloud Toolkit 是针对 IDE 平台为开发者提供的一款插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,您可以将本地应用一键部署到云端(ECS、EDAS、容器服务 Kubernetes 等)和任意服务器;并且它还内嵌了 Arthas 程序诊断、 Terminal Shell 终端和 MySQL 执行器等工具 【注】本文介绍的是在idea中使用Alibaba Cloud Toolkit插件部署springboot项目到阿里云服务器上的案例demo 阿里云服务器基本环境:jdk1.8以上 -> 项目运行所需 其它环境请根据项目情况自行安装哦~二、idea安装插件Alibaba Cloud Toolkit 三、配置1、配置Accounts安装完之后idea -> Settings 左边栏便会出现Alibaba Cloud Toolkit工具栏,如下图 我们需要配置Accounts,这里可以参考官方给出的教程: http://toolkit.aliyun.com/ecl... 阿里云获取AccessKey详情地址 -> https://usercenter.console.al... 2、配置SSH Profile这里可以有两种方式,根据自己情况选择 四、部署运行项目右击选择如下图中所示 或idea上方Tools工具栏中选择这里大家也可以看到Cloud Toolkit功能很强大,没事大家可以多点点看,前方一片绿洲等待着你们,哈哈配置运行信息: 温馨小提示: 远程服务上的脚本是原本写好的,在idea中只是配置脚本运行的路径关于脚本如何编写,可以参考官方给出的demo:https://yq.aliyun.com/article...配置完之后就是run运行了~浏览器输入地址查看运行成功! 五、查看实时日志可参考官方Cloud Toolkit 常见问题:https://yq.aliyun.com/article...运行完后很多时候我们需要在控制台实时查看日志信息,所以还需要配置如下信息: # 实时查看日志命令tail -f 日志路径 注:我的日志文件是放在了 /IT_zhengqing/code/test 路径下点击apply之后,然后关闭弹出框,再次单击 图中圈圈部分便可查看日志信息了 六、总结Alibaba Cloud Toolkit 一键部署插件使用起来相对比较简单,很多地方idea中都已经给出提示配置链接,都不需要我们再百度查找资料,直接看官方提供的资料即可,功能也很强大,喜欢的同学可以多点点看其它的一些功能哦

July 5, 2019 · 1 min · jiezi

IDEA效率提升技巧

快捷键ALT + ENTER 处理idea报错,告警

May 31, 2019 · 1 min · jiezi

还不知道如何使用-IDEA-教你三招快速掌握-IDEA

前言IntelliJ IDEA 是一个非常强大的 IDE,拥有许多功能。在 IDEA 中大部分功能都可以用快捷键去完成,如果掌握了大部分快捷键,可以只使用键盘开发了。 ps: 最近正在练习快捷键,准备尝试只使用键盘进行开发也许因为这些繁多的功能,对于新入手 IDEA 的开发人员,快速掌握功能与快捷键并不是很简单。幸运的是 Jetbrain 早已考虑到该情况, 在 IDEA 有相关功能,可以快速帮助你上手。 Tip of the day首先介绍的是 Tip of the day 。这个功能,大家应该都见过。初始安装好 IDEA,打开软件,默认就会弹出下面的窗口。 默认情况下 show tips on startup 选项会勾选,下次打开就会该功能会继续出现。不过我相信很多人,被国内各种弹窗广告迫害,会习惯性的第一时间就会把它取消。 如果你已经取消这个选项,可以在 HELP | Tip of the day 打开。 在这个窗口,会显示一个 IDEA 功能,左右切换可以查看其他功能。 productivity guide第二个介绍 productivity guide。 上面我们提到 IDEA 中存在很多功能以及快捷键,但你知道你经常使用是那几个功能以及使用频率如何? 在 IDEA 中打开 productivity guide,在这里你不仅可以看到经常使用的功能,还会展示你从未使用的功能。 我们可以在 Help | Productivity Guide 打开。 这个窗口可以看到 IDEA 统计相关功能使用情况。点击未在使用的功能,在下面的面板,会给出相关提示。 ...

May 30, 2019 · 1 min · jiezi

IDEA打断点时没有打勾的可能情况

IDEA打断点时没有打勾的可能情况?今天在调试代码的时候,linux服务器上配置微服务启动debug模式,并在本地配置好了ip及端口的情况下,添加断点时,图形一直是一个普通的红点,正常情况下断点的图形应该变成一个小圆点,并且上面有一个√。google总结可能引起的原因有以下: 断点所指向的类还没有在服务端还没有加载;断点处的代码永不执行。参考文档如下: IntelliJ IDEA:断点没有被击中,并且没有打勾显示,只是一个红点

May 23, 2019 · 1 min · jiezi

IDEA-常用插件

帮助 JAVA 开发者提升开发效率的插件工具插件名称功能描述备注lombok注解方式实现 Setter 和 Getter 等方法可以大量减少模板代码的编写工作,代码更整洁backgroundimage plus设置IDEA 的背景图片 CodeGlance相当于当前代码文件的缩略图,可以快速移动到代码块IDEA 代码界面右侧的缩略预览Idea restartIDEA 的重启功能因 IDEA 默认未自带重启功能,使用该插件可实现mybatis log pluginMybatis 的日志插件,可在 IDEA 控制台看到完整可执行的 Sql 语句 translation翻译插件 markdown supportmarkdown 文件支持可以打开 markdown 文件并以 markdown 的语法渲览文档free mybatis pluginMybatis 的插件,可以在interface 和 sql 的 xml 文件间跳转 maven helpermaven 依赖包的可视化展示对于 maven 项目的依赖包的处理很有帮助gson format将 JSON 转为 java 类可以直接根据 JSON 数据定义出 java 类及其 fieldgrep console控制台日志展示不同级别的日志可以以不同的颜色展示Material ThemeIDEA 的主题插件,可更换 IDEA 的展示风格可选主题比较多,个人比较喜欢

May 22, 2019 · 1 min · jiezi

gradle多模块打jar上传本地仓库并给本地其他项目使用

1、前言本篇主要讲述:gradle多模块打jar包,上传本地仓库,并交由本地其他项目使用2、环境准备操作系统: mac osgradle版本:4.1.0开发软件:idea注:gradle版本不同,引入依赖方式可能不同,如果你发现本地导包是OK的,但是打包就报错,可以看看是不是gradle版本所引起的问题3、多模块gradle文档【gradle多环境讲解,官方文档】,官方文档描述了多模块配置中的几个闭包的常规使用allprojects{}, subprojects{}。前者配置应用包括root模块在内的所有模块,后者只应用子模块,详细的使用规则进入官方文档详细了解 4、项目实战项目1结构 |──root-project-one 项目1名称 ├── common-project 基础子项目 │ └── build.gradle 基础子项目配置文件 ├── example-project 依赖common项目的示例项目 │ └── build.gradle 依赖common项目的示例项目的配置文件 ├── build.gradle 项目1的配置文件项目2结构 |──root-project-two 项目2名称 ├── build.gradle 项目2的配置文件(需要引用项目1中的example-project)各个项目的配置文件(此处只列举主要配置) root-project-one/build.gradle //所有子项目共享配置subprojects { apply plugin: 'maven' // 获取本地仓库路径 def localRepositoryPath = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath //打包至本地仓库配置 uploadArchives { repositories { //mavenDeployer 需要依赖 apply plugin: 'maven' mavenDeployer { repository(url: localRepositoryPath) pom.project { name = project.name // 当前项目名称 version = project.version //当前项目版本 0.0.1 groupId = project.group // 当前项目组 com.xxx } } } }}common-project/build.gradle ...

May 18, 2019 · 1 min · jiezi

Intellij-IDEA-最头大的问题如何自定义注释模板

想栈长我当初从 Eclipse 转用 IDEA 真是纠结,放弃然后尝试了N次,不过现在已经算是转型成功了,可以完全脱离 Eclipse 撸码了,虽然说我现在真的撸得非常少了。。 说到 IDEA 的痛点,我觉得注释配置就不是很人性化。Eclipse 可以很方便的设置和导入公共的自定义注释模板、格式化模板,但在 IDEA 中确实有点蹩脚,配置起来甚至有点高级,还需要用到 Grovvy 脚本。。 废话不说了,来看下如何解决 Intellij IDEA 最头大的问题:自定义注释模板。。 IDEA 中有以下两种配置模板。 File and Code TemplatesLive Templates下面介绍下这两种的使用方法。 File and Code TemplatesFile and Code Templates 用来配置文件和代码模板,即文件在创建的时候自动会按文件模板生成代码注释。 下面来演示一下如何自动生成 Java 类注释。 依次打开下面这个菜单: Editor > File and Code Templates > files 里面自带了很多文件的注释模板,只不过要自己设置,这个 class 里面的内容就是自带的,里面有一个 #parse 的代码。 #parse("File Header.java")这个 File Header.java 哪里来的呢? 依次打开下面这个菜单: Editor > File and Code Templates > files > Includes ...

May 15, 2019 · 1 min · jiezi

idea搭建osgi项目开发学习

本文介绍了在mac系统上如何用idea搭建osgi项目开发,演示使用的equinor osgi framework,jdk8。 equinor下载下载地址:https://download.eclipse.org/...本文下载的是equinox-SDK-4.11.zip,下载后进行解压,后面需要用到这个解压目录。 idea创建工程File -> New -> Project,选择Java,点击Next,创建一个空工程。继续点击Next。填写项目名称,这里叫osgi_demo。 工程下创建osgi模块创建api、server、client三个模块。创建模块时勾选OSGI作为开发环境,Use library从刚才下载的equinox解压的目录下的plugins目录中选择org.eclipse.osgi_3.13.300.v20190218-1622.jar。创建模块完成之后,打开idea的preferences,在Languages & Frameworks找到OSGI Framework Instances选项。添加Equinox,Home directory选择刚才解压的Equinox目录。 编写演示代码结构如下图api模块中定义接口类IHelloService package osgi.demo.api;public interface IHelloService { /** * 和某人打招呼 * @param somebody * @return */ String sayHello(String somebody);}server模块接口实现类HelloServiceImpl package osgi.demo.server;import osgi.demo.api.IHelloService;public class HelloServiceImpl implements IHelloService { @Override public String sayHello(String somebody) { return "hello " + somebody; }}server模块服务注册类HelloServerBundle package osgi.demo.server;import org.osgi.framework.BundleActivator;import org.osgi.framework.BundleContext;import osgi.demo.api.IHelloService;import java.util.Dictionary;import java.util.Hashtable;public class HelloServerBundle implements BundleActivator { @Override public void start(BundleContext bundleContext) throws Exception { IHelloService service = new HelloServiceImpl(); Dictionary<String , Object> properties = new Hashtable<>(); //服务注册 bundleContext.registerService(IHelloService.class, service, properties); } @Override public void stop(BundleContext bundleContext) throws Exception { }}client模块调用服务类HelloClientBundle ...

April 28, 2019 · 1 min · jiezi

Intellij IDEA 阅读源码的 4 个绝技,我必须分享给你!

前段时间分享了《阅读跟踪 Java 源码的几个小技巧》是基于 Eclipse 版本的,看大家的留言都是想要 IDEA 版本的源码阅读技巧。所以,为了满足众多 IDEA 粉丝的要求,栈长我特意做一期 IDEA 版的。1、定位到方法实现类public static Object getBean(String name) { return applicationContext.getBean(name);}如以上代码,IDEA 如何跳转到 getBean 方法的实现类?在 IDEA 中,CTRL + 鼠标左击 默认会跳到方法所在的接口,如 getBean 就会跳到 BeanFactory 接口里面去。org.springframework.beans.factory.BeanFactory在 IDEA 中略显麻烦,在引用的方法上 CTRL + ALT + 鼠标左击(B)可以实现跳转至实现类,如果有多个实现类会弹出让你选择。点击右上角 Open as Tool Window 图标还能展开更多详细。2、查看类层级关系到了 BeanFactory 类,在任意地方使用快捷键 CTRL + H 可以打开类的继承层级面板。或者直接选中 BeanFactory 类名称,再按 CTRL + ALT + 鼠标左击(B),同样可以展示 BeanFactory 类的所有继承类的关系。还有更屌的!右键任意类,选择 Diagrams > Show Diagram… 可以打开类的继承图。看起来有点乱,那是因为我选择了所有实现类展示,实际请合理利用 Show Parents 和 Show Implementations 菜单。3、查看类结构如上图所示,IDEA 中也有 Eclipse 中 outline 的面板,叫作:Structure,有了这个面板,可以快速浏览一个类的大纲,也可以快速定位到类的方法、变量等。也可以使用快捷键 Alt + 7 调出这个面板。4、源码统计如图所示,栈长在 IDEA 中装了一个 Statistic 插件,这个插件只支持 JDK 1.8+。有了这个插件,它可以在项目中按文件类型进行代码的行数、数量、大小统计。这样你就能知道整个源码的总体数量,你也可以把已经阅读的做统计,慢慢实现源码阅读的攻破。熟练的运用 IDEA 中各个小技巧,让阅读跟踪源码变得更轻松。更多往期 IDEA 技术文章可以关注Java技术栈微信公众号,在后台回复关键字:IDEA。 ...

April 19, 2019 · 1 min · jiezi

在 IntelliJ IDEA 中部署应用到服务器(Eclipse)

在之前的文章《在 Intellij IDEA 中部署 Java 应用到 阿里云 ECS》中讲解了如何将一个本地应用部署到阿里云 ECS 上去,有些读者反馈目前还有一些测试机器是在经典网络,甚至是在本地机房中,咨询是否可以通过 Cloud Toolkit 插件将应用部署到这些服务器上去?最新版本的 Cloud Toolkit 已经发布,完全支持啦。本地开发无论是编写云端运行的,还是编写本地运行的 Java 应用程序,代码编写本身并没有特别大的变化,因此本文采用一个及其基础的样例《在 Web 页面打印 HelloWorld 的 Java Servlet 》为例,做参考。public class IndexServlet extends HttpServlet { private static final long serialVersionUID = -112210702214857712L; @Override public void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { PrintWriter writer = resp.getWriter(); //Demo:通过 Cloud Toolkit ,高效的将本地应用程序代码修改,部署到云上。 writer.write(“Deploy from alibaba cloud toolkit. 2018-10-24”); return; } @Override protected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { return; }}源代码下载上述代码就是一个标准的 Java 工程,用于在 Web 页面上打印一串“Hello World”的文案。安装插件阿里云提供了基于 Intellij IDEA 的插件,以方便开发人员能够高效的将本地 IDE 中编写的应用程序,极速部署到服务器中去。插件主页:https://www.aliyun.com/product/cloudtoolkit阿里云的这个 IntelliJ IDEA 插件的安装过程,和普通的插件大同小异,这里不再赘述,读者请自行安装。添加服务器如上图所示,在菜单 Tools - Alibaba Cloud - Alibaba Cloud View - Host中打开机器视图界面,如下图:点击右上角Add Host按钮,出现添加机器界面部署在 IntelliJ IDEA 中,鼠标右键项目工程名,在出现的菜单中点击 Alibaba Cloud - Deploy to Host…,会出现如下部署窗口:在 Deploy to Host 对话框设置部署参数,然后单击 Deploy,即可执行初次部署。部署参数说明:Deploy File:部署文件包含两种方式。Maven Build:如果当前工程采用 Maven 构建,可以使用 Cloud Toolkit 直接构建并部署。Upload File:如果当前工程并非采用 Maven 构建,或者本地已经存在打包好的部署文件,可以选择并直接上传本地的部署文件。Target Deploy host:在下拉列表中选择Tag,然后选择要部署的服务器。Deploy Location :输入在 ECS 上部署路径,如 /root/tomcat/webapps。Commond:输入应用启动命令,如 sh /root/restart.sh。表示在完成应用包的部署后,需要执行的命令 —— 对于 Java 程序而言,通常是一句 Tomcat 的启动命令。本文作者:银时阅读原文本文为云栖社区原创内容,未经允许不得转载。 ...

April 18, 2019 · 1 min · jiezi

关于Idea启动报Error:Abnormal build process termination:

Error:Abnormal build process termination: “C:Program FilesJavajdk1.8.0_91binjava.exe” 我之前无意间突然关机导致所有软件没安全退出,当我再次启动Idea时,报Error:Abnormal build process termination的错误。调试一圈后,发现只要重新配置jdk就可以了打开idea->file->project Structure第一步 先删除原来的jdk第二步 新增第三步 选择新的jdk(也可以是原来的)

April 12, 2019 · 1 min · jiezi

一次作死经历

今天作了一波,解决过程还是比较曲折的,特此记录一下。作死行为今天下午一时兴起,改了一下硬盘名,当时想着应该不会有问题,毕竟以前该磁盘的挂载点是一堆乱七八糟的字符,和那个1TB卷(这名字看着真不得劲)的硬盘名看着毫无关系。(以下为修改卷名为test进行测试)改完就发现出事了,开发软件没了,环境变量也没了……查看路径变成了当前卷的名字重配环境变量还好jetBrains家的软件是可以一键迁移的,开发环境也很好配改一下名字就好。jetBrains系列下的软件可以通过toolbox的设置直接修改软件的位置(我用那个select修改一直不成功,还是直接手动输入的文件夹名)改到以前安装的那个文件夹,重启软件,所有安装的软件就都找到了(另外toolbox对于这些软件的升级和管理都很方便,推荐大家可以试一下)再就是配置环境变量,这个简单详细过程就不说就不说了。(第一次体验到了设置JAVA_HOME的好处,只需修改一点就好了)还是启动不了的Java程序本以为配置完环境应该就完事大吉了。idea启动,spring-boot启动。失败了,根本没有启动的选项main函数的String还报错了,这看着就像java没装好啊。我决定重装jdk……但是重装完成以后仍然这样。运行单元测试的时候出现了一个错误。我想了想直接把这个给删除了,想着这样会生成一个正常的文件,但是也没有……最后idea感受到了我的困难,并给我提供了帮助第一步之后就解决了问题。jdk的路径并没有从$PATH中获取,还是保持的以前哪一个。总结这个问题本来是一个很小的问题,早就知道idea可以自己设置jdk,不一定需要配置环境变量,但因为思维惯性,想着环境变量应该会是第一优先级,就没想着去检查这个东西,而想着是jdk出了问题,浪费了时间,而且JetBrains的IDE真是好用,已经不是第一次通过它提示的文档来解决问题了,毕业以后如果有能力,一定得支持正版。

April 11, 2019 · 1 min · jiezi

阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?

本文来源于阿里巴巴资深技术专家无相在内网的分享,阿里巴巴中间件受权发布。最近因为工作的关系,要将 Eclipse 的插件升级为 IDEA 插件。升级过程中,对 IDEA 插件做了些学习和研究,希望通过本文,对“为什么收费的 InteliJ IDEA 会比免费的 Eclipse有着更好的用户口碑“这一现象,提供些个人的思考。通过这篇文章,您将了解到心流与人体工效的重要性,并使自己变得更强大,文章将从以下几点展开:InteliJ IDEA 当前的市场情况与表现;IntelliJ IDEA 成功的原因;IntelliJ IDEA 在 IDE 设计器领域胜出的两个关键点;IntelliJ IDEA 对现实工作的启示;充分利用 IntelliJ IDEA 插件,使自己变得更强大;InteliJ IDEA 的市场情况与表现是如何?2012年开始,IntelliJ IDEA 便迅速崛起,到了2016年,就占领了开发者市场的 46% 分额。直至2018的最新结果:IntelliJ IDEA 的市场份额增长到了 55.4%,显然赢得了18年 Java 领域的 IDE 王者之战,甚至还有重构的大师 Martin Fowler 在他著名的blog上,对 IntelliJ IDEA 赞誉有加。而且根据 IDEA 的产品满意度调查,其满意度竟高达 98%。从外国学者角度,分析 IntelliJ IDEA 为何成功很多国外学者也研究了 IDEA,它的成功之处归结起来有以下两点:1. 产品功能上的成功:代码的智能提示: IDEA 自主开发语言解释器,做了深度的静态分析,让编程更加智能与高效,这是一项杀手级的特色功能;没有保存按钮:每一个你想使用功能,都有快捷键;性能非常好,用户的体验及其流畅;IDEA 不仅对核心插件进行维护, 还提供了优秀的工具集,给予用户一致的UX范式体验;2. 营销策略上的成功:以产品为核心和根本,以 “更好用” 的设计理念和原则打败了很多竞争者;IDEA 没有销售团队,但是霸气的营销口号体现了其内容营销的核心逻辑:”Try it. Test it. If you feel its better, use it“ ,没有多余的营销,真正做到用产品说话;相信大部分程序员,对 IDEA 的特性已经非常熟悉了。 接下来,我们将分析其真正强大的原因。在 IDE 设计器领域里,IntelliJ IDEA 为何能胜出?IDEA 的风靡与崛起,在于它遵从了两个关键的设计哲学:1. 不打断心流Every aspect of IntelliJ IDEA is designed with ergonomics in mind. IntelliJ IDEA is built around the idea that every minute a developer spends in the flow) is a good minute, and things that break developers out of flow are bad things. Every design and implementation decision considers the possibility of interrupting developer’s flow and seeks to eliminate or minimize it.(这句话美得我不想翻译。)“Creative Flow” or just “Flow” is a state of mind where you feel evenly attuned, and focused on the task at hand.创造心流是一种思考状态,是你感觉平和或专注于手头的任务的时刻,通俗的理解就是当你沉浸一件事时,有一种忘记时间与空间的感觉。心流会让你处于你最佳的意识状态,McKinsey 在2010年的研究表明,当你处于心流状态,你的工作效率比非心流状态下的工作效率提高 500%。通过这种设计理念的学习,不禁畅想:如果越来越多的阿里产品,像IntelliJ IDEA的的产品体验一样,让人处于心流,高效完成任务,整体的生产效率将会成倍提升。2. 人体工效学IntelliJ IDEA 宣称用人体工效学来设计IDEA, 即 ”The capable and ergonomic IDE for JVM“。我们简要地科普一下人体工效学:这是一门专注研究人体舒适,通过产品设计减少疲劳、不舒适的科学。在家居设计和人体工程学上,都会重点考虑这种设计理念,让人们在使用时感受到更舒适、更高效率与更少的压力。接下来例举两个人体工效学的经典例子:1. 客服耳机如果没有佩戴式耳机的出现,客服同学估计会疯掉。1. 一撕得的包装箱一撕得的包装纸质量、胶水质量、人体工效学的拉链式设计,这三种要素在纸箱界都是业界第一。人体工效学对软件设计的提示:统一的UX风格设计;将复杂任务变成简单任务;将长任务分解成短任务;因为人类的有记忆力的限制,所以要适当提供提醒,提供关键的辅助给用户,让他们完全沉浸在核心工作中,不被打断。(更多提示,可以看参加文献的第5篇文章。)如果想体验一下人体工程学的设计,IDEA的快捷键与无保存按钮,你立刻就会明白。对我们现实工作有哪些启示?经过团队的讨论,我们认为 IDEA 的增长飞轮在于:优秀的设计理念,卓越的产品体验,InteliJ IDEA 开放的社区,免费与专业收费并行的商业模式。IDEA 不断更新迭代的路径就是用更好的产品体验,吸引到更多的用户,用户贡献了更多的利润,用来吸收更多的优秀人才,一起开发更好的产品。这给予我们现实工作的指导意义,产品要回归至以人为中心的设计理念:心流的提示:罗列出用户的任务,让用户尽可能处于心流状态,消灭导致任务低效的因素;人体工效学提示:我们在设计产品时,要充分考虑用户使用产品的场景,这是一个一体化的设计,就像星环产品设计。写代码只是软件研发的一环,需求创意提出、需求研发上线、业务商业分析这些整体环节都要考虑,让用户舒适地完成任务;智能提示:采用人工智能来提升任务的完成效率。IntelliJ IDEA的智能代码提示,是一个经典的案例;最后:我个人会将心流与人体工效学的设计思想,融入至技术产品设计过程中,期待我们团队的实践篇。小编推荐两款创造心流的 IDE 插件:1. 热替换利器:JRebel一款热部署插件,帮助开发者在项目处于运行状态下任意修改 Java 文件并动态反馈到运行的项目中。点击了解更多2. 开发测试必备部署神器:Cloud Toolkit帮助开发者更高效地开发、测试、诊断并部署应用,利用此插件,能够方便地将本地应用一键部署到任意机器(了解更多:体验链接)。参考文献https://www.javaworld.com/article/3114167/development-tools/choosing-your-java-ide.htmlhttps://www.youtube.com/watch?v=Eyy9ddRgMX8http://catalyticcolor.com/scientific-research-about-flow/https://en.wikipedia.org/wiki/Flow_(psychology))http://ergo.human.cornell.edu/ahtutorials/interface.html本文作者:无相,阿里巴巴资深技术专家,多年担任汇金平台的架构师,是阿里tbbpm工作流引擎的作者。曾在阿里云负责过云产品 0 至 1 的商业化,最近几年在负责阿里的店铺&详情等系统的中台建设。目前,新零售业务平台正在招聘优质架构师,欢迎投简历到 wuxiang#alibaba-inc.com 邮箱。本文作者:中间件小哥阅读原文本文为云栖社区原创内容,未经允许不得转载。 ...

April 8, 2019 · 1 min · jiezi

如何永久激活(破解) IntelliJ IDEA 2019.1

之前写过一篇 如何永久激活(破解) IntelliJ IDEA 2018.1.3,很多同学说 2019 新款的不能用了,于是我又找到了另外一种方式。且看。1、去官网下载并安装 idea地址:https://www.jetbrains.com/ide… 文件有点大,耐心等待一会儿。2、下载破解(crack) jar 包链接: https://pan.baidu.com/s/1Z4Mm… 提取码: 4rhx 如果失效,留言回复,或者先用原来的那种方式,也能用,只是可能不是永久激活了。3、下载好了的 crack jar包 放到 idea 的 bin 目录下如下图所示4、修改 bin 目录下的 idea.vmoptions 文件把 idea.vmoptions 文件加一行如下的配置,根据你保存的文件名自行变更-javaagent:../bin/jetbrains-agent.jar有可能版本或者操作系统不同的原因(我的是 Mac),有人可能没有 idea.vmoptions,但是有 idea.exe.vmoptions 和 idea64.exe.vmoptions 这两个文件,在这里面进行配置应该也是一样。5、在 hosts 文件里面添加如下配置0.0.0.0 account.jetbrains.com6、打开 idea,注册选择License server方式地址填入:http://jetbrains-license-server7、应该没啥问题了现在打开你的 idea ,看一下是不是注册成功了。最后提示:破解仅供学习使用,如果不差钱,希望支持正版原文首发于 http://zhige.me/2019/04/03/20…

April 3, 2019 · 1 min · jiezi

Cloud Toolkit 部署应用到阿里云轻量应用服务器

在之前的文章《在 Intellij IDEA 中部署 Java 应用到 阿里云 ECS》中讲解了如何将一个本地应用部署到阿里云 ECS 上去,有些读者反馈目前正在使用阿里云轻量应用服务器,咨询是否可以通过 Cloud Toolkit 插件将应用部署到这些服务器上去?最新版本的 Cloud Toolkit 已经发布,完全支持啦。由于阿里云 ECS 云助手只能支持 VPC 网络机器,因此,轻量应用服务器只能通过 Host 模式手动添加机器,采用标准 SSH 协议来进行部署添加服务器如上图所示,在菜单Tools - Alibaba Cloud - Alibaba Cloud View - Host中打开机器视图界面,如下图:点击右上角Add Host按钮,出现添加机器界面设置服务器的 SSH 账号部署在 IntelliJ IDEA 中,鼠标右键项目工程名,在出现的菜单中点击 Alibaba Cloud - Deploy to Host…,会出现如下部署窗口:在 Deploy to Host 对话框设置部署参数,然后单击 Deploy,即可执行初次部署。部署参数说明:Deploy File:部署文件包含两种方式。Maven Build:如果当前工程采用 Maven 构建,可以使用 Cloud Toolkit 直接构建并部署。Upload File:如果当前工程并非采用 Maven 构建,或者本地已经存在打包好的部署文件,可以选择并直接上传本地的部署文件。Target Deploy host:在下拉列表中选择Tag,然后选择要部署的服务器。Deploy Location :输入在 ECS 上部署路径,如 /root/tomcat/webapps。Commond:输入应用启动命令,如 sh /root/restart.sh。表示在完成应用包的部署后,需要执行的命令 —— 对于 Java 程序而言,通常是一句 Tomcat 的启动命令。本文作者:银时阅读原文本文为云栖社区原创内容,未经允许不得转载。 ...

April 3, 2019 · 1 min · jiezi

在 IntelliJ IDEA 中部署应用到服务器

在之前的文章《在 Intellij IDEA 中部署 Java 应用到 阿里云 ECS》中讲解了如何将一个本地应用部署到阿里云 ECS 上去,有些读者反馈目前还有一些测试机器是在经典网络,甚至是在本地机房中,咨询是否可以通过 Cloud Toolkit 插件将应用部署到这些服务器上去?最新版本的 Cloud Toolkit 已经发布,完全支持啦。本地开发无论是编写云端运行的,还是编写本地运行的 Java 应用程序,代码编写本身并没有特别大的变化,因此本文采用一个及其基础的样例《在 Web 页面打印 HelloWorld 的 Java Servlet 》为例,做参考。public class IndexServlet extends HttpServlet { private static final long serialVersionUID = -112210702214857712L; @Override public void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { PrintWriter writer = resp.getWriter(); //Demo:通过 Cloud Toolkit ,高效的将本地应用程序代码修改,部署到云上。 writer.write(“Deploy from alibaba cloud toolkit. 2018-10-24”); return; } @Override protected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { return; }}源代码下载上述代码就是一个标准的 Java 工程,用于在 Web 页面上打印一串“Hello World”的文案。安装插件阿里云提供了基于 Intellij IDEA 的插件,以方便开发人员能够高效的将本地 IDE 中编写的应用程序,极速部署到服务器中去。插件主页:https://www.aliyun.com/product/cloudtoolkit阿里云的这个 IntelliJ IDEA 插件的安装过程,和普通的插件大同小异,这里不再赘述,读者请自行安装。添加服务器如上图所示,在菜单 Tools - Alibaba Cloud - Alibaba Cloud View - Host中打开机器视图界面,如下图:点击右上角Add Host按钮,出现添加机器界面部署在 IntelliJ IDEA 中,鼠标右键项目工程名,在出现的菜单中点击 Alibaba Cloud - Deploy to Host…,会出现如下部署窗口:在 Deploy to Host 对话框设置部署参数,然后单击 Deploy,即可执行初次部署。部署参数说明:Deploy File:部署文件包含两种方式。Maven Build:如果当前工程采用 Maven 构建,可以使用 Cloud Toolkit 直接构建并部署。Upload File:如果当前工程并非采用 Maven 构建,或者本地已经存在打包好的部署文件,可以选择并直接上传本地的部署文件。Target Deploy host:在下拉列表中选择Tag,然后选择要部署的服务器。Deploy Location :输入在 ECS 上部署路径,如 /root/tomcat/webapps。Commond:输入应用启动命令,如 sh /root/restart.sh。表示在完成应用包的部署后,需要执行的命令 —— 对于 Java 程序而言,通常是一句 Tomcat 的启动命令。本文作者:银时阅读原文本文为云栖社区原创内容,未经允许不得转载。 ...

April 2, 2019 · 1 min · jiezi

Idea基于Maven配置多JDK版本

Idea基于Maven配置多JDK版本1. 配置settings.xml2. 配置pom.xml3. 配置project structure3.1 配置SDK3.2 检查Modules相应SDK配置4. 配置Maven插件4.1 Maven基本配置4.2 配置Maven运行的JDK5. 配置编译JDK6. 编译打包6.1 使用Maven插件6.2 使用命令Idea基于Maven配置多JDK版本如果在本地开发环境中安装了多个JDK版本的话,需要在idea中自由切换,就需要利用Maven进行配置,配置后就可以非常方便的进行版本切换。配置步骤如下:1. 配置settings.xml在Maven的本地配置中,添加以下配置,配置JAVA_HOME和JAVA_VERSION两个属性。<profiles> <profile> <id>java6-compiler</id> <properties> <JAVA_HOME>C:\SoftCommon\Java\jdk1.6.0_45</JAVA_HOME> <JAVA_VERSION>1.6</JAVA_VERSION> </properties> </profile> <profile> <id>java7-compiler</id> <properties> <JAVA_HOME>C:\SoftCommon\Java\jdk1.7.0_67</JAVA_HOME> <JAVA_VERSION>1.7</JAVA_VERSION> </properties> </profile> <profile> <id>java8-compiler</id> <properties> <JAVA_HOME>C:\SoftCommon\Java\jdk1.8.0_202</JAVA_HOME> <JAVA_VERSION>1.8</JAVA_VERSION> </properties> <!– activeByDefault=true代表如果不指定某个固定id的profile,那么就使用这个环境 –> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>java9-compiler</id> <properties> <JAVA_HOME>C:\SoftCommon\Java\jdk-9</JAVA_HOME> <JAVA_VERSION>1.9</JAVA_VERSION> </properties> </profile> <profile> <id>java11-compiler</id> <properties> <JAVA_HOME>C:\SoftCommon\Java\jdk-11.0.2</JAVA_HOME> <JAVA_VERSION>11</JAVA_VERSION> </properties> </profile></profiles>2. 配置pom.xml在相应的项目工程中配置pom.xml中配置如下,主要是添加一个build标签,添加maven-compiler-plugin编译插件。<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.home>${JAVA_HOME}</java.home> <java.version>${JAVA_VERSION}</java.version> <maven.compiler.source>${JAVA_VERSION}</maven.compiler.source> <maven.compiler.target>${JAVA_VERSION}</maven.compiler.target></properties><build> <!–pluginmanagement标签一般用在父pom中,子元素可以包含plugins插件–> <pluginManagement> <plugins> <!– 一个好习惯,就是在此配置JDK的版本,这样就可以方便代码迁移 By Landy 2019.01.04–> <!–一般而言,target与source是保持一致的。但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 。–> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>${maven.compiler.source}</source> <!– 源代码使用的开发版本 –> <target>${maven.compiler.target}</target> <!– 需要生成的目标class文件的编译版本 –> <!– 这下面的是可选项 –> <meminitial>128m</meminitial> <maxmem>512m</maxmem> <fork>true</fork> <!– fork is enable,用于明确表示编译版本配置的可用 –> <compilerVersion>${java.version}</compilerVersion> <!– 这个选项用来传递编译器自身不包含但是却支持的参数选项 –> <!–<compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument>–> <executable>${java.home}/bin/javac</executable> </configuration> </plugin> </plugins> </pluginManagement></build>注意:pluginmanagement主要是用于父工程(module),然后在相应的子工程(module)中添加如下配置即可加入maven-compiler-plugin插件,这样就可以让子工程决定是否加载相应的Maven插件。<build> <!–然后,在子pom文件中就可以这样使用,省去了版本、配置等信息,只需指定groupId和artifactId即可。–> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> </plugins></build>以上配置详情可以参看本例项目配置。配置完成刷新一下Maven插件(reimport),即可展示上面所配置的profile列表。如下所示:3. 配置project structure3.1 配置SDK打开idea中的project structure,配置相应的project sdk和project language level,配置如下(本案例采用JDK11),3.2 检查Modules相应SDK配置在Modules中有可能会没能自动刷新相应的sdk language level配置,这时候就需要手动设置。注意:经过本人现场测试,发现idea 2018.03版本的情况,他只能自动刷新的language level是JDK1.8+的版本。操作方法:点击Maven插件中的reimport,如下所示,4. 配置Maven插件4.1 Maven基本配置在Idea中需要配置一下Maven settings.xml文件和Maven本地仓库的位置,如果有本地安装的Maven也可以进行配置(没有则使用idea默认自带的Maven)。file –> settings –> maven 如下所示:4.2 配置Maven运行的JDK为了每次切换了Project JDK后,不需要再次进行设置可以选择Project JDK选项。如下所示,5. 配置编译JDK这时候,一般情况下,经过上面步骤,基本上就就可以进行相应的maven编译打包的操作了,但是有时候会遇到如下的问题,Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project xxxx Fatal error compiling: 无效的标记: -parameters -> [Help 1]这个错误是由于你项目所需jdk版本和你当前使用的jdk版本不一致导致的,因为我项目的pom.xml中定义了java版本为11,但是我实际idea中run这个项目却是1.8.要是你在intellij idea里面的maven窗口点击的打包编译的话,就在intellij idea设置项目jdk版本,直接Ctrl+Alt+s进入设置界面。6. 编译打包通过以上步骤就可以利用maven进行编译打包的操作了。6.1 使用Maven插件如果使用idea,则可以直接使用maven插件进行打包操作。如下图所示,6.2 使用命令如果使用Maven命令,如下所示,mvn -s D:\mvn_repository\settings.xml clean package -P java11-compilerjava11-compiler即为上面配置的jdk版本的profile id,并且需要制定相应的settings文件即可。关于本人笔者Github链接: https://github.com/landy8530 ...

March 30, 2019 · 1 min · jiezi

教你一招用 IDE 编程提升效率的骚操作!

阅读本文大概需要 3 分钟。IDEA 有个很牛逼的功能,那就是后缀补全(不是自动补全),很多人竟然不知道这个操作,还在手动敲代码。这个功能可以使用代码补全来模板式地补全语句,如遍历循环语句(for、foreach)、使用 String.format() 包裹一个字符串、使用类型转化包裹一个表达式、根据判(非)空或者其它判别语句生成 if 语句、用 instanceOf 生成分支判断语句等。使用的方式也很简单,就是在一个表达式后按下点号 . ,然后输入一些提示或者在列表中选择一个候选项,常见的候选项下面会给出 GIF 演示。var 声明null 判空notnull 判非空nn 判非空for 遍历fori 带索引的遍历not 取反if 条件判断cast 强转return 返回值看完怎么样?赶紧用起来装逼啊~·END·路虽远,行则必至本文原发于 同名微信公众号「程序员的成长之路」,回复「1024」你懂得,给个赞呗。微信ID:cxydczzl

March 9, 2019 · 1 min · jiezi

IDEA常用操作

使用Mybatis-Generator逆向工程生成pojo、mapper1、添加依赖插件:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <!–配置文件的位置–> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> </dependencies> </plugin> </plugins></build>2、添加配置文件generatorConfig.xml3、配置idea点击菜单Run->Edit Configuration,然后在弹出窗体的左上角,点击+->maven,会出现下面窗体命令: mybatis-generator:generate -e

March 7, 2019 · 1 min · jiezi

idea maven工程显示灰色(不亮)

用 idea 开发的同学,有可能会遇到下面这个问题,工程下面所有模块或者部分模块显示灰色,造成这个问题的原因是忽略了 maven 模块,只需要将忽略的文件 ignored files 进行恢复就可以解决这个问题。解决方法:1、打开 preferences -> maven -> ignored files2、把相应的勾去掉就可以了原文链接http://zhige.me/2019/02/28/20…

February 28, 2019 · 1 min · jiezi

IDEA 插件开发入门教程

IntelliJ IDEA 是目前最好用的 JAVA 开发 IDE,它本身的功能已经非常强大了,但是每个人的需求不一样,有些需求 IDEA 本身无法满足,于是我们就需要自己开发插件来解决。工欲善其事,必先利其器,想要提高开发效率,我们可以借助 IDEA 提供的插件功能来满足我们的需求。如果没有我需要的功能怎么办?很简单,我们自己造一个!插件能做什么?IDEA 的插件几乎可以做任何事情,因为它把 IDE 本身的能力都封装好开放出来了。主要的插件功能包含以下四种:自定义语言支持:如果有 IDEA 暂时不支持的语言,你可以自己写一个插件来支持,例如 Go 语言原来的支持就是通过插件做的,后来单独做了一个 Goland。官方有自定义语言插件支持的教程。框架支持:例如Struts 2 的框架支持工具集成:可以给 IDEA 的自带功能进行增强,例如对 Git 的操作增加 CodeReview 的功能。参考Gerrit用户界面:自定义的插件改变用户界面。参考BackgroundImage我为了减少重复代码的编写,写了一个代码生成的插件IDEA代码生成插件CodeMaker,支持自定义代码生成的模板。Hello world 插件依照惯例,我们从 Hello world 开始。新建一个 Gradle 的插件工程有些教程推荐用 IDEA 默认的插件工程来开始,但是我比较推荐用 Gradle 来管理整个插件工程,后面的依赖管理会很方便,否则都得靠手动管理。点击新建工程,选择 Gradle接下来填写项目属性配置 Gradle,用默认配置就行新建完工程之后,IDEA 会自动开始解析项目依赖,因为它要下载一个几百兆的 SDK 依赖包,所以会比较久,打开科学上网能快一点。Gradle 依赖解析完成之后,项目结构如下图,其中 plugin.xml 是插件的配置,build.gradle 是项目依赖的配置(类比 pom.xml)。下面就是默认生成的 plugin.xml<idea-plugin> <!–插件id–> <id>com.xiaokai.test.demo</id> <!–插件名称–> <name>Demo</name> <!–开发者信息–> <vendor email=“support@yourcompany.com” url=“http://www.yourcompany.com”>YourCompany</vendor> <!–插件说明–> <description><![CDATA[ Enter short description for your plugin here.<br> <em>most HTML tags may be used</em> ]]></description> <!– please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html on how to target different products –> <!– uncomment to enable plugin in all products <depends>com.intellij.modules.lang</depends> –> <!–依赖的其他插件能力–> <extensions defaultExtensionNs=“com.intellij”> <!– Add your extensions here –> </extensions> <!–插件动作–> <actions> <!– Add your actions here –> </actions></idea-plugin>创建一个 ActionAction 是 IDEA 中对事件响应的处理器,它的 actionPerformed 就像是 JS 中的 onClick 方法。可以看出来,插件的开发本质上跟 web、Android 的开发没有什么不同,因为都是事件驱动的编程。我们可以直接使用 IDEA 提供的 Action 生成器点击 OK 之后会在 src 生成类文件:package com.xiaokai.test;import com.intellij.openapi.actionSystem.AnAction;import com.intellij.openapi.actionSystem.AnActionEvent;public class HelloWorldAction extends AnAction { @Override public void actionPerformed(AnActionEvent e) { // TODO: insert action logic here }}同时,动作的信息也会注册到 plugin.xml 中 <!–插件动作–> <actions> <!– Add your actions here –> <action id=“demo.hello.world” class=“com.xiaokai.test.HelloWorldAction” text=“HelloWorld” description=“Say Hello World”> <add-to-group group-id=“GenerateGroup” anchor=“last”/> </action> </actions>弹出对话框创建完 Action 之后我们就要开始往里面写逻辑了,既然是 Hello World 教学,那我们就来试一下最简单的弹出对话框。 @Override public void actionPerformed(AnActionEvent e) { //获取当前在操作的工程上下文 Project project = e.getData(PlatformDataKeys.PROJECT); //获取当前操作的类文件 PsiFile psiFile = e.getData(CommonDataKeys.PSI_FILE); //获取当前类文件的路径 String classPath = psiFile.getVirtualFile().getPath(); String title = “Hello World!”; //显示对话框 Messages.showMessageDialog(project, classPath, title, Messages.getInformationIcon()); }代码写完之后,打开 Gradle 的界面,点击 runIde 就会启动一个安装了插件的 IDEA,然后就可以进行测试。你还可以右键启动 Debug 模式,这样还能进行断点。运行的效果如下图:可以看到,我们右键打开 Generate 菜单之后,里面最后一项就是我们添加的 Action,进阶的教程如果想学习更多的原理和设计理念可以看IntelliJ Platform SDK的官方文档。不过老实说,它的文档写的挺差的,基本上就是简单讲了一下概念和原理,没有深入的分析。所以如果要深入研究还得靠自己。最靠谱的学习方式就是看别人写的插件,举个例子,你想知道怎么样实现自动生成代码,你就去找支持这个功能的插件,看他的源码是怎么写的。我当时写CodeMaker的时候也是靠自己啃源码之后写出来的。下面我简单介绍一下我用过的一些 API,这些 API 基本都没有文档说明,全靠代码相传。判断当前光标选择的元素是什么 //获取当前事件触发时,光标所在的元素 PsiElement psiElement = anActionEvent.getData(LangDataKeys.PSI_ELEMENT); //如果光标选择的不是类,弹出对话框提醒 if (psiElement == null || !(psiElement instanceof PsiClass)) { Messages.showMessageDialog(project, “Please focus on a class”, “Generate Failed”, null); return; }获取当前类文件的所有类对象一个类文件中可能会有内部类,所以读取的时候返回的是一个列表 public static List<PsiClass> getClasses(PsiElement element) { List<PsiClass> elements = Lists.newArrayList(); List<PsiClass> classElements = PsiTreeUtil.getChildrenOfTypeAsList(element, PsiClass.class); elements.addAll(classElements); for (PsiClass classElement : classElements) { //这里用了递归的方式获取内部类 elements.addAll(getClasses(classElement)); } return elements; }格式化代码 public static void reformatJavaFile(PsiElement theElement) { CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(theElement.getProject()); try { codeStyleManager.reformat(theElement); } catch (Exception e) { LOGGER.error(“reformat code failed”, e); } }使用粘贴板 CopyPasteManager.getInstance() .setContents(new SimpleTransferable(table.toString(), DataFlavor.allHtmlFlavor));更多更多的技巧可以参考我的项目CodeMaker,以及其他的开源插件。本文作者:风马萧萧 阅读原文本文为云栖社区原创内容,未经允许不得转载。 ...

February 25, 2019 · 2 min · jiezi

IDEA系列软件使用

http://idea.imsxm.com/ 你懂的

February 19, 2019 · 1 min · jiezi

IDEA常用插件整理

Lombok作用:帮使用者提高编码效率,减少重复与冗余的代码。使用教程下载地址阿里巴巴代码规范检测使用教程下载地址GsonFormat作用: json 格式的字符串转换成实体类参数使用教程下载地址Maven Helper作用:一键查看maven依赖,查看冲突的依赖,一键进行exclude依赖。使用教程下载地址Git flow作用:git工作流插件使用教程下载地址VisualVM Launcher作用:查看jvm情况,jvm调优必备工具使用教程下载地址Free Mybatis plugin作用:非常方便进行 Mapper 接口和 XML 文件之间跳转下载地址Codehelper Generator作用:自动生成MyBatis代码使用教程下载地址GenerateAllSetter作用:一键生成对象所有set代码使用教程下载地址Rainbow Brackets作用:彩色配对括号,代码块多看着会很舒服下载地址Translation作用:功能强大的翻译插件使用教程下载地址Iedis作用:Redis可视化插件使用教程(需翻墙)下载地址

February 13, 2019 · 1 min · jiezi

依赖包的优先级设置

问题出现:一个老项目的退款功能被微信支付后台停用,原因是xml解析工具有漏洞风险, 微信客服给出的解决方案是使用官方的补丁。使用补丁后发现:xml-api包与jdk自带的包冲突。具体原因: xml-api包的某个类与jdk自带的某个类具有相同的全限定名,但是xml-api包中并没有相关实现, IDE没有依赖jdk自带的包,而是优先依赖xml-api包,导致项目无法完成编译。尝试解决:在 Maven 中排除 xml-api 包: 从父 pom 里面做排除: 但是项目年代久远,各种类库的依赖盘根错节, 到父 pom 里面没找到依赖,到依赖的自定义基本库里面也没找到。 况且考虑到父 pom 被其他项目依赖的可能性,所以还是想想其他办法。 全局排除: 在 pom 文件里加入冲突包的依赖,然后再排除包里全部的内容: <dependency> <groupId></groupId> <artifactId></artifactId> <version></version> <exclusions> <exclusion> <groupId></groupId> <artifactId></artifactId> </exclusion> </exclusions> </dependency> 这个方法能够排除掉项目对 xml-api 包里的全部依赖; 但是因为先导入后排除,项目依然会优先依赖 xml-api 包;所以问题还是没有解决。推荐方案:修改依赖包的优先级: 因为这个老项目是用 Eclipse 开发,先说 Eclipse 操作方法。 Eclipse: 设置 build path order; 把优先级高的包放到上面, 所以可以把 jre 的包放到最上面。 顺便看了下 IDEA 的设置,也能修改优先级。 IDEA: 修改 classpath order: 菜单:File -> Project Structure -> Modules 快捷键:Ctrl + Alt + Shift + S -> Modules 把优先级高的包放到上面, IDEA 中,jdk 自带的包默认就是最高优先级,所以使用 IDEA 不会出现类似的问题。 传送门:http://blog.51cto.com/1350814…本文系笔者原创转载请注明出处————————————— ...

February 12, 2019 · 1 min · jiezi

Idea VM options

Custom IntelliJ IDEA VM options##################JVM模式############################# IDEA的JVM以Server模式启动(新生代默认使用ParNew)-server##################内存分配############################ 堆初始值占用3G,意味着IDEA启动即分配3G内存-Xms3g# 堆最大值占用3G-Xmx3g# 强制JVM在启动时申请到足够的堆内存(否则IDEA启动时堆初始大小不足3g)-XX:+AlwaysPreTouch# 年轻代与老年代比例为1:3(默认值是1:4),降低年轻代的回收频率-XX:NewRatio=3# 栈帧大小为16m-Xss16m##################老年代回收器######################### 使用CMS老年代回收器-XX:+UseConcMarkSweepGC# CMS的重新标记步骤:多线程一起执行-XX:+CMSParallelRemarkEnabled# CMS的并发标记步骤:启用4个线程并发标记(理论上越多越好,前提是CPU核心足够多)-XX:ConcGCThreads=8##################JIT编译器############################ 代码缓存,用于存放Just In Time编译后的本地代码,如果塞满,JVM将只解释执行,不再编译native代码。-XX:ReservedCodeCacheSize=512m# 分层编译,JIT编译优化越来越好,IDEA运行时间越久越快-XX:+TieredCompilation# 节省64位指针占用的空间,代价是JVM额外开销#-XX:+UseCompressedOops# 增大软引用在JVM中的存活时长(堆空闲空间越大越久)-XX:SoftRefLRUPolicyMSPerMB=50# 设为false Idea会提示无法利用Https更新-Djsse.enableSNIExtension=true-ea-Dsun.io.useCanonCaches=false-Djava.net.preferIPv4Stack=true-Djdk.http.auth.tunneling.disabledSchemes=""-XX:+HeapDumpOnOutOfMemoryError-XX:-OmitStackTraceInFastThrow-XX:MaxJavaStackTraceDepth=10000-Dide.no.platform.update=true

February 5, 2019 · 1 min · jiezi

Idea插件使用

Ideaactivate-power-modeactivate-power-mode for IDEA.根据Atom的插件activate-power-mode的效果移植到IDEA上设置窗口在这里:我喜欢打开colorful关闭combo,你们呢?DownloadAtom Material IconsReplace Jetbrains’ icons with Atom File Icons and Material Design Icons! This is a both a port of the Atom File Icons (https://github.com/file-icons… and the Material Theme Icons (https://github.com/ChrisRM/ma… for Jetbrains products.它好像会随着Material Theme UI一起安装。DownloadMaterial Theme UIThis will add the Material Theme look to your IDE.很棒的一个主题设置在这里:DownloadRainbow BracketsRainbow Brackets / Rainbow Parentheses for IntelliJ based IDEs Supported languages:Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex language, C#, Dart …JavaWith Material Theme UIScalaKotlinClojureHtmlGifDownloadWakaTimeMetrics, insights, and time tracking automatically generated from your programming activity.InstallationInside your IDE, select Preferences -> Plugins -> Browse Repositories….Search for wakatime.Click the green Install Plugin button and confirm the installation.Re-launch your IDE.Enter your api key, then click Save.Use your IDE like you normally do and your time will be tracked for you automatically.Visit https://wakatime.com to see your logged time.Source Code: https://github.com/wakatime/j...chrome也有哦,附一张我的统计图:设置在这里:DownloadAndroid StudioAndroid WiFi ADBProvides an action which allow you quickly connect your Android device over WiFi to install, run and debug your applications without a USB connected by pressing one button. Connect your device using a USB cable and press the Android WiFi ADB button. Once the device be connected over WiFi you’ll see an IntelliJ/Android Studio notification. Now you can disconnect your USB cable and enjoy deploying, running and debugging your applications over WiFi. The version 2.0 enables a window to check which of your devices are connected or not and connect/disconnect it manually if needed.有了它就不用数据先连接调试了,需要在同一个局域网下哦。DownloadDatabase NavigatorDatabase development, scripting and navigation toolThis product adds extensive database development and maintenance capabilities to the IntelliJ IDEA development environment and related products. Along with a qualified and IDE-compliant SQL and PL/SQL editor, it provides advanced database connection management, script execution support, database objects browsing, data and code editor, support for database compiler operations, method execution and debugging, database objects factory, as well as various navigation capabilities between all its components.See features overview on the support page.Supported Databases:OracleMySQLSQLitePostgreSQLThis tool is free for personal and commercial usage. Donations are very welcome though.调试数据库有奇效。DownloadJSON To Kotlin Class (JsonToKotlinClass)Plugin for Kotlin to convert Json String into Kotlin data class code quicklyFast use it with short cut key ALT + K on Windows or Option + K on MacFeatures:Generating Kotlin data class from any legal JSON string or any URLs that returns a JSON string as response Generating Kotlin data class from any legal JSON text when right click on directory and select New -> Kotlin data class File from JSONSupporting (almostly) all kinds of JSON libs’ annotation(Gson, Jackson, Fastjson, MoShi and LoganSquare, kotlinx.serialization(default custom value))Customizing your own annotationsInitializing properties with default valuesAllowing properties to be nullable(?)Determining property nullability automaticallyRenaming property names to be camelCase style when selecting a target JSON lib annotation.Generating Kotlin data class as individual classesGenerating Kotlin data class as inner classesFormatting any legal JSON stringGenerating Map Type when json key is primitive typeOnly create annotation when neededCustom define data class parent classSort property order by AlphabeticalMake keyword property validSupport Loading JSON From Paster/Local File/Http URLSupport customize your own plugin by Extension ModuleFull Usage DocumentationDownload未完待续 ...

February 4, 2019 · 3 min · jiezi

IDEA下Gradle多模块(项目)的构建

IDEA下Gradle多模块项目的构建我们在新起一个项目的时候,一般都会建多个子项目(IDEA里面称之为Module模块)。通过Gradle构建,多个Module之间需要将公用的配置抽取到全局,子项目中只写差异化的配置,以便于维护。多模块项目的Gradle目录结构示例:我的示例项目demo,我需要有一个common模块用于公用代码,一个rest模块用于提供rest接口,rest依赖common,如果用gradle构建,目录树会是这样:demo├── build.gradle – 全局配置├── settings.gradle – 全局配置├── common – 子模块1目录│ └── build.gradle – 子模块1配置├── rest – 子模块2配置│ └── build.gradle – 子模块2配置…IDEA下初始创建root目录结构A. IDEA本地创建项目并定义项目名如果是通过IDEA新建一个本地项目,可按照如下步骤先创建root项目:File -> New -> Project: 选择Gradle->JavaNext, 填写GroupId和ArtifactId:GroupId: 如com.dibootArtifactId:如demoNext, 指定Gradle home和JVM等Next, 选择项目存放路径。完成之后IDEA会创建相关文件接下来如果你需要将本地新项目代码上传到代码仓库,可以通过VCS菜单导入:B. 基于代码仓库指定的项目名创建root项目而如果项目名已经在仓库中定义,你需要基于仓库名初始项目的gradle配置,则项目的初始创建是通过VCS导入,然后用命令行初始化gradle:File -> New -> Project from Version Control -> …切换到Terminal命令行,输入 gradle init,按照操作提示进行root项目的初始化。创建子模块/项目在根目录demo文件夹右键选择 New -> Module -> Gradle -> Java, 指定子模块ArtifactId名称,依次添加common模块和rest模块后,gradle相关的目录结构就跟我们期望的一致了。全局gradle配置在demo根目录下: settings.gradle中的结构定义如下rootProject.name = ‘demo’include ‘common’include ‘rest’build.gradle中可以定义全局公用的构建配置,以Spring Boot项目配置示例:buildscript { ext { springBootVersion = ‘2.1.2.RELEASE’ } repositories { maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/'} } dependencies { classpath(“org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}”) }}// 所有模块/项目的通用配置allprojects { group ‘com.diboot’ version ‘1.0-SNAPSHOT’ apply plugin: ‘idea’}// 子模块/项目的统一配置subprojects { apply plugin: ‘java’ // 指定JDK版本 sourceCompatibility = 1.8 targetCompatibility = 1.8 // 指定编码格式 [compileJava,compileTestJava,javadoc].options.encoding = ‘UTF-8’ repositories { maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/'} } ext {//依赖版本 springBootVersion = “2.1.2.RELEASE” mysqlConnectorVersion = “8.0.13” mybatisStarterVersion = “1.3.2” fastjsonVersion = “1.2.54” } dependencies { compile(“javax.servlet:javax.servlet-api:4.0.1”) compile(“org.springframework.boot:spring-boot-starter-web:$springBootVersion”) // Mybatis compile(“org.mybatis.spring.boot:mybatis-spring-boot-starter:$mybatisStarterVersion”) // Log4j2 compile(“org.springframework.boot:spring-boot-starter-log4j2:$springBootVersion”) // JDBC Driver compile(“mysql:mysql-connector-java:$mysqlConnectorVersion”) // JSON compile(“com.alibaba:fastjson:$fastjsonVersion”) // Apache Commons compile(“org.apache.commons:commons-lang3:3.8.1”) // 单元测试 testCompile(“org.springframework.boot:spring-boot-starter-test:$springBootVersion”) testCompile(“junit:junit:4.12”) } configurations { //移除spring boot 默认logger依赖 all*.exclude module: ‘spring-boot-starter-logging’ }}子模块/项目gradle配置通用的依赖配置可以在根目录下的build.gradle中,子模块/项目仅配置差异化的部分即可,如子项目特定的依赖。common下的build.gradle示例:dependencies { // 配置该项目特有的依赖}rest下的build.gradle示例(rest项目依赖common项目):dependencies { // 依赖common项目 compile project(":common") // 配置该项目特有的依赖}代码参考:Diboot-v2初始项目Gradle官方相关文章:Gradle多项目构建介绍Gradle多项目构建Diboot轻代码开发平台, Diboot开发助理 ...

January 26, 2019 · 1 min · jiezi

IntelliJ IDEA 18 周岁,吐血推进珍藏已久的必装插件

IntelliJ IDEA是目前最好最强最智能的Java IDE,前几天,他刚刚年满18岁。本文,给大家推荐几款我私藏已久的,自己经常使用的,可以提升代码效率的插件。IDEA插件简介常见的IDEA插件主要有如下几类:常用工具支持Java日常开发需要接触到很多常用的工具,为了便于使用,很多工具也有IDEA插件供开发使用,其中大部分已经在IDEA中默认集成了。例如maven、git、svn、tomcat、jetty、jrebel、Gradle等。功能增强还有些插件提供了一些IDE中不具有的功能,比如静态代码扫描、代码自动生成等。框架集成集成框架主要是为了提供框架定制的代码和配置的生成,以及快速的访问框架提供的功能。例如集成Spring框架,Mybatis框架等。UI定制化及优化UI定制化相关的插件主要提供一下个性化需求定制,例如修改编辑区的背景图片插件、修改代码颜色等。其他编程语言支持IDEA主要支持Java,为了使用其他语言,可以使用一些支持其他语言的插件,通过这些插件可以实现语法分析,配色主题,代码格式化和提示等功能。例如Go语言的支持的插件。个人或者公司特殊需求公司内部插件我的插件一览这里简单介绍一些笔者日常开发中使用到的插件。 以下是我的IDEA中自己安装的插件列表。这些插件都是我经过很长时间的使用之后最终保留下来的,都是值得安装的一些插件。其中被我打码的就是公司内部插件。IDEA插件安装IDEA的插件安装非常简单,对于很多插件来说,只要你知道插件的名字就可以在IDEA里面直接安装。Preferences—>Plugins—>查找所需插件—>Install或者Preferences—>Plugins—>Install plug from disk —>选择下载好的插件安装安装之后重启IDEA即可生效IDEA插件仓库IntelliJ IDEA激发了许多Java开发人员编写插件, IntelliJ IDEA Plugins(https://plugins.jetbrains.com… )中目前包含3000+个插件并且还在不断增长。基本功能作者目前使用的IntelliJ IDEA版本是专业版2018.2.4(Ultimate Edition)很多插件中提供的功能在这个版本中都已经集成进来了,这里简单说几个可能比较常用的,这几种功能就无需加装插件了。背景图片目前,IDEA支持设置背景图片。这对于广大程序员来说无疑是个好功能。整日对着枯燥的代码实在是会让人疲乏。要是可以设置一张美女图片的话。。。设置方法Ctrl+Shift+A(或者help -> find action)调用弹窗后输入Set Background Image在里面设定要设置为Image的图片,透明度调到15左右,保存即可。效果如下内置terminal目前IntelliJ IDEA已经有一个内置的terminal工具,可以方便的使用shell命令。内置support目前很多新版本的IntelliJ IDEA中,已经内置了很多support插件,比如我们常用的markdown support 、UML support 以及 android support等。PS:由于作者使用的是专业版,不知道社区版是否也会内置这些插件,如果没有内置的话,读者可以根据需要自行下载相关插件并安装。有了markdowm support插件以后,就可以直接预览md语法的内容了。必备插件Maven Helper目前,Java开发很多都在使用maven进行项目管理和自动构建。日常开发中,可能经常会遇到jar包冲突等问题,就需要通过查看maven依赖树来查查看依赖情况。这种方式不是很高效,这里推荐一个插件,安装之后,直接打开pom文件,即可查看依赖数,还能自动分析是否存在jar包冲突。一旦安装了Maven Helper插件,只要打开pom文件,就可以打开该pom文件的Dependency Analyzer视图(在文件打开之后,文件下面会多出这样一个tab)。进入Dependency Analyzer视图之后有三个查看选项,分别是Conflicts(冲突)、All Dependencies as List(列表形式查看所有依赖)、All Dependencies as Tree(树结构查看所有依赖)。并且这个页面还支持搜索。FindBugs-IDEAFindBugs很多人都并不陌生,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件。使用方法很简单,就是可以对多种级别的内容进行finbugs分析完之后会有一个视图进行提示,详细的说明是哪种问题。 按照提示解决完问题之后再执行findbug查看情况即可。阿里巴巴代码规约检测2017年10月14日杭州云栖大会,Java代码规约扫描插件全球首发仪式正式启动,规范正式以插件形式公开走向业界,引领Java语言的规范之路。Java代码规约扫描插件以今年年初发布的《阿里巴巴Java开发规约》为标准,作为Eclipse、IDEA的插件形式存在,检测JAVA代码中存在不规范得位置然后给予提示。规约插件是采用kotlin语言开发的,感兴趣的同学可以去开看插件源码。阿里巴巴规约插件包含三个子菜单:编码规约扫描、关闭试试检测功能。并且,该插件支持在编写代码的同时进行提示,这款插件,真的可以很大程度上提升代码质量,一定要安装。GsonFormatJava开发中,经常有把json格式的内容转成Object的需求,比如项目开始时,合作方给你提供了一个json格式request/response,这时候你就需要将其定义成一个Java类,GsonFormat这款插件可以实现该功能。Lombok plugin在Java中,我们经常会定义很多JavaBean,这些Bean需要有getter、setter、toString、equals和hashCode等方法。通常情况下,我们可以使用IDEA的快捷键生成这些代码,但是自动生成的代码后,如果bean中的属性一旦有修改,需要重新生成,给代码维护增加了一定的负担。有一款很好的插件,可以帮助开发者节省这部分工作。那就是Lombok。只要在IDEA中安装了该插件,只需要在JavaBean中添加一行注解代码,插件就会自动帮我们生成getter、setter、toString、equals和hashCode等方法。当然,这些方法不止在IDE中的代码调用中需要用到,在真正线上部署的时候也需要有,所以,还需要使用maven引入一个lombok的包。<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version></dependency>/** * @author Hollis */public class HollisLab { public static void main(String[] args) { Wechat wechat = new Wechat(); wechat.setId(“Hollis”); wechat.setDesc(“每日更新Java技术文章”); System.out.println(wechat); }}@Dataclass Wechat { private String id; private String desc;}输出结果:Wechat(id=Hollis, desc=每日更新Java技术文章)我们在Wechat类上面添加了@Data注解,插件就自动帮我们添加了getter/setter和toString方法。String Manipulation字符串日常开发中经常用到的,但是不同的字符串类型在不同的地方可能有一些不同的规则,比如类名要用驼峰形式、常量需要全部大写等,有时候还需要进行编码解码等。这里推荐一款强大的字符串转换工具——String Manipulation。它强大到什么程度,看下他的功能列表你就知道了:文本转换操作切换样式(camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)转换为SCREAMING_SNAKE_CASE (或转换为camelCase)转换为 snake_case (或转换为camelCase)转换为dot.case (或转换为camelCase)转换为hyphen-case (或转换为camelCase)转换为hyphen-case (或转换为snake_case)转换为camelCase (或转换为Words)转换为camelCase (或转换为lowercase words)转换为PascalCase (或转换为camelCase)选定文本大写样式反转Un/EscapeUn/Escape 选中的 java 文本Un/Escape 选中的 javascript 文本Un/Escape 选中的 HTML 文本Un/Escape 选中的 XML 文本Un/Escape 选中的 SQL 文本Un/Escape 选中的 PHP 文本将 diacritics(accents) 转换为 ASCII将非ASCII 转换为转义的Unicode将转义的Unicode转换为字符串Encode/DecodeEncode 选中的文本为 MD5 Hex16De/Encode 选中的文本为 URLDe/Encode 选中的文本为 Base64递增/递减递增/递减所有找到的数字复制行并且递增/递减所有找到的数字创建序列:保持第一个数字,递增替换所有其他数字递增重复的数字按自然顺序排序按行倒序按行随机排序区分大小写A-z排序区分大小写z-A排序不区分大小写A-Z排序不区分大小写Z-A排序按行长度排序通过子选择行排序:每行仅处理一个选择/插入符号对齐通过选定的分隔将选定的文本格式化为列/表格将文本对齐为左/中/右过滤/删除/移除grep选定的文本,所有行不匹配输入文字将被删除。 (不能在列模式下工作)移除选定的文本移除选定文本中的所有空格删除选定文本中的所有空格删除重复的行只保留重复的行删除空行删除所有换行符其他交换字符/选择/线/标记切换文件路径分隔符:Windows < - > UNIX安装好插件后,选中需要处理的内容后,按快捷键Alt+m,即可弹出工具功能列表。很好很强大的一款字符串处理工具。.ignore目前很多开发都在使用git做版本控制工具,但是有些时候有些代码我们是不想提到到我们的代码仓库中的,比如ide自动生成的一些配置文件,或者是我们打包生成的一些jar文件等,这时候就需要编写一个.ignore文件,来排除那些不想被版本管理的文件。这里推荐一个好用的插件.ignore,他可以帮我们方便的生成各种ignore文件。安装插件后,选中项目,右键新建的时候,会多出一个.ignore文件的选项,可以通过这个选项创建ignore文件。在弹出的对话框中,可以自动帮我们生成一份.ignore文件,这里我们让其帮忙自动排除所有和idea有关的文件。 Mybatis plugin目前ORM框架中,Mybatis非常受欢迎。但是,同时给很多开发带来困扰的就是Mybatis需要很多xml的配置文件,有的时候很难去进行修改。这里推荐一款神器,可以让你像编辑java代码一样编辑mybatis的文件。Intellij Idea Mybatis插件主要功能:提供Mapper接口与配置文件中对应SQL的导航编辑XML文件时自动补全根据Mapper接口, 使用快捷键生成xml文件及SQL标签ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C)快捷键生成@Param注解XML中编辑SQL时, 括号自动补全XML中编辑SQL时, 支持参数自动补全(基于@Param注解识别参数)自动检查Mapper XML文件中ID冲突自动检查Mapper XML文件中错误的属性值支持Find Usage支持重构从命名支持别名自动生成ResultMap属性 (图源:https://www.oschina.net/p/int…)但是这款插件是收费的,但是不影响他确实是一个很实用,可以很大程度上提升开发效率的插件。读者可以考虑使用Free Mybatis plugin(这款插件我没用过,具体是否好用有待考证)。Key promoter X对于很多刚刚开始使用IDEA的开发者来说,最苦恼的就是不知道快捷键操作是什么。使用IDEA,如果所有操作都使用鼠标,那么说明你还不是一个合格的程序员。这里推荐一款可以进行快捷键提示的插件Key promoter X。Key Promoter X 是一个提示插件,当你在IDEA里面使用鼠标的时候,如果这个鼠标操作是能够用快捷键替代的,那么Key Promoter X会弹出一个提示框,告知你这个鼠标操作可以用什么快捷键替代。当我使用鼠标查看一个方法都被哪些类使用的时候,就会提示:记住这个快捷键以后,就可以使用快捷键代替鼠标啦。AceJump前面介绍了一款可以通过使用快捷键来代替鼠标操作的插件,这里再介绍一款可以彻底摆脱鼠标的插件,即AceJumpAceJump允许您快速将光标导航到编辑器中可见的任何位置,只需点击“ctrl +;”,然后输入一个你想要跳转到的字符,之后键入匹配的字符就跳转到你想要挑战的地方了。如以上代码,我想在这个类中,跳转到println那个位置,只需要按下快捷键:“ctrl +;”,然后输入println,即可定位到目标位置。上图中,我输入了pri三个字母后,页面提示三个可选项,分别用字母G、H、D标注,这时候只需要按下对应字母,即可快速定位到指定位置,是不是很方便。activate-power-mode最后,介绍一款程序员很好的在妹子面前装X的插件——activate-power-mode 。安装了这款插件之后,你写代码的时候,就会附加一些狂拽炫酷屌炸天的效果:总结本文一共介绍了11款可以提升程序员开发效率、提升代码质量、提升编码心情的软件。欢迎大家安装尝试一下。 ...

January 22, 2019 · 1 min · jiezi

SonarLint(Sonar) 代码质量管理

SonarLint(Sonar) 代码质量管理

January 3, 2019 · 1 min · jiezi

Idea或webstrom配置webpack设置路径alias实现代码自动补全功能

做开发的时候,每次import想要代码提示,通过../../src/components长长的相对路径用起来很不方便,通过配置webpack的alias就可以让ide实现代码自动补全功能配置文件内容alias.config.jsconst path = require(‘path’);module.exports = { resolve: { alias: { ‘@’: path.resolve(__dirname, “src”), ‘_c’: path.resolve(__dirname, “src/components”), } }};idea 配置这样就能很愉快的跑起来了

December 29, 2018 · 1 min · jiezi

IDEA支付宝小程序开发流程——项目搭建

服务器端在平台上创建spring boot小程序应用创建小程序登录 蚂蚁金服开放平台,选择 开发者中心 > 开发接入 > 小程序(立即接入) > 立即创建 > 创建。填写 基本信息,点击 创建 按钮,创建应用名为 Demo 小程序。PS:一个账号下最多可以创建10个小程序;未提交过审核的小程序可以删除,删除的小程序不在计数范围。创建云应用后端服务在 我的小程序 页面,选择刚创建的小程序,点击 查看,进入 开发管理 页面。点击左侧导航栏的 云服务(公测)(申请需要5天),在 云服务列表 页面点击 创建云服务 > 创建云应用。在 创建云应用 页面,选择 SpringBoot 技术栈,填入 应用名称 和 描述 (选填),点击 创建。构建环境返回 云服务(公测) 页面,点击刚创建的云服务卡片中的 构建环境 按钮。在 购买环境资源 页面,选择合适的环境配置方案,点击 同意《产品服务协议》 > 确认配置。说明:此处选择 小程序云应用入门(Mysql版),当前测试环境该方案免费提供,但若连续 7 日未部署过代码,环境会被自动回收。- 在 确认订单 页面,点击 确认购买。 购买成功后会自动进入 构建环境 页面。构建过程会耗时几分钟,构建成功后,您可以选择 查看应用详情 ,或者 返回应用列表 。IDEA安装支付宝小程序开发插件到https://github.com/alipay/ali…(建议下载次新)的插件版本(alipay-intellij-plugin-v1.x.x.zip)进行下载下载完成后,IDE 中 Preferences (Windows 下为 Settings) => Plugins => Install plugin from disk…,点选已下载的 Zip 包进行安装,依照提示重启 IDE 生效中文乱码解决方法Appearance & Behavior => Appearance => UI Options -> Name 里设置成中文字体,如 微软雅黑(microsoft yahei light)、文泉驿(linux)创建项目流程 File => New => Project… => Alipay CloudApp => 选择SpringBoot => NEXT => FINISH架构HelloController.java代码package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloController { @RequestMapping("/index") public IndexVO hello() { return new IndexVO(“this is my first ali small routine!”); }}本地项目和平台的项目相关联在IDEA的小程序云应用视图中点击登录账号然后用具有开发者权限的用户扫码授权登录PS:添加开发者账号的方式:我的小程序 =>查看 => 成员管理 => 添加 => 要添加的账号在客户端找到对应的提示信息并点击确认点击关联应用本地构建生成jar 点击 部署应用 将该打包好的项目 JAR 包部署到测试环境上。开始部署后,云应用管理 视窗会打出部署日志。部署结束后会有消息提示部署完成。客户端下载小程序开发者工具并安装打开小程序开发者工具,在菜单中选择 项目 > 新建项目 > 小程序 (选择对应模板) 。填入 项目名称 后,点击 完成,完成项目创建。编辑page/index/index.axml<view> {{index}} <button onTap=“index”> 首页 </button></view>编辑page/index/index.js Page({ data: { index: ‘index’ }, onLoad(query) { // 页面加载 console.info(Page onLoad with query: ${JSON.stringify(query)}); }, onReady() { // 页面加载完成 }, onShow() { // 页面显示 }, onHide() { // 页面隐藏 }, onUnload() { // 页面被关闭 }, onTitleClick() { // 标题被点击 }, onPullDownRefresh() { // 页面被下拉 }, onReachBottom() { // 页面被拉到底部 }, onShareAppMessage() { // 返回自定义分享信息 return { title: ‘ali small routine’, desc: ’this is my first ali small routine’, path: ‘pages/index/index’, }; }, index() { my.httpRequest({ url: ‘https://app2120230256test.mapp-test.xyz/index', // 此处app2120230256test.mapp-test.xyz应修改为SpringBootDemo云应用所在的云服务器域名(云服务(公测) > 环境资源 > 云服务器ECS > 域名> 二级域名) complete: (res) => { this.setData({ hello: res.data }); }, }); } }); 上传上传完毕后,登录到开放平台提交审核,审核完毕后,小程序即可进行发布操作。调试至此,支付宝小程序的搭建流程已完成,感谢各位大神的观看、评价、校正。PS:下一篇将实现授权登录功能!成东 广州芦苇科技Java开发团队芦苇科技-广州专业互联网软件服务公司抓住每一处细节 ,创造每一个美好关注我们的公众号,了解更多想和我们一起奋斗吗?lagou搜索“ 芦苇科技 ”或者投放简历到 server@talkmoney.cn 加入我们吧关注我们,你的评论和点赞对我们最大的支持 ...

December 26, 2018 · 2 min · jiezi

在maven离线模式使用intellij idea的配置

今天在内网使用intellij idea,把maven仓库也拷贝了过来,但是使用maven install 命令的时候,却还是从私服里面下载。(内网无法连接到任何私服)导致install的时候报缺少依赖的错误。经过各种搜索,终于发现了解决办法。 ...

June 11, 2018 · 1 min · jiezi

idea中报Error:java: Compilation failed: internal java compiler error

set中java complier 设置的问题 ,项目中有人用jdk1.6 有人用jdk1.7 版本不一样 会一起这个错误进行如下操作:

February 7, 2018 · 1 min · jiezi