idea配置代碼模板的地方【只用配置includes便可,不用配置Files tab下的內容】:
Editor-> File and Code Templates->Includes
php
This is a built-in template. It contains a code fragment that can be included into file templates (Templates tab) with the help of the #parse directive.
The template is editable. Along with static text, code and comments, you can also use predefined variables that will then be expanded like macros into the corresponding values. Predefined variables will take the following values: ${PACKAGE_NAME} name of the package in which the new file is created ${USER} current user system login name ${DATE} current system date ${TIME} current system time ${YEAR} current year ${MONTH} current month ${MONTH_NAME_SHORT} first 3 letters of the current month name. Example: Jan, Feb, etc. ${MONTH_NAME_FULL} full name of the current month. Example: January, February, etc. ${DAY} current day of the month ${DAY_NAME_SHORT} first 3 letters of the current day name. Example: Mon, Tue, etc. ${DAY_NAME_FULL} full name of the current day. Example: Monday, Tuesday, etc. ${HOUR} current hour ${MINUTE} current minute ${PROJECT_NAME} the name of the current project Apache Velocity template language is used
reformat時,import記錄的轉換。html
idea在單元測試中設置JVM參數
運行一次測試用例,而後在工具欄中點 Run/Debug旁邊的向下的小箭頭:java
選擇Edit Configuration…git
能夠看到 VM Options 參數設置,而且能夠指定具體的方法
必定保存Apply,否則不會生效:
github
阿里代碼規約檢測web
快捷鍵提示工具:Key promoter Xspring
代碼註解插件: Lombokapache
代碼生成工具:CodeMakerjson
單元測試測試生成工具:JUnitGeneratorwindows
Mybatis 工具:Free Mybatis plugin 【可以讓Mapper.java文件 關聯到 mapper.xml中的方法】
Maven輔助神器:Maven Helper
JSON轉領域對象工具:GsonFormat
領域對象轉JSON工具:POJO to JSON
時序圖生成工具:SequenceDiagram
字符串工具:String Manipulation
代碼做色工具:Rainbow Brackets
RESTful 服務開發輔助工具集: RestfulToolkit
日誌工具:Grep Console
生成對象set方法:GenerateAllSetter
Redis可視化:Iedis
K8s工具:Kubernetes
中英文翻譯工具:Translation
https://mp.weixin.qq.com/s/xNSES7n_oMU4I4rwftQHiA
IDEA插件介紹(一) -RestfulToolkit(接口自測工具)
1:官網
http://plugins.jetbrains.com/plugin/10292-restfultoolkit
2:工具介紹:
一套 RESTful 服務開發輔助工具集。
1.根據 URL 直接跳轉到對應的方法定義 ( or Ctrl Alt N );
2.提供了一個 Services tree 的顯示窗口;
3.一個簡單的 http 請求工具;
4.在請求方法上添加了有用功能: 複製生成 URL;,複製方法參數...
5.其餘功能: java 類上添加 Convert to JSON 功能,格式化 json 數據 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
3:背景介紹:
由於咱們公司開發模式爲先後端分離,因此對接口文檔要求較爲苛刻,有時因開發任務多,接口文檔沒法及時提供,須要雙方頻繁溝通確認,爲了解決這種現狀,給你們安利一款插件,插件名爲RestfulToolkit,能有效解決在無接口文檔時,雙方的聯調工做。
4:安裝
ctrl +alt +s →settings
plugins →browse repositories
搜索框輸入:RestfulToolkit →Install
安裝完成後重啓IDEA
下面爲圖示:
安裝完成後就是上面的樣子。安裝失敗的請升級IDEA至18及以上版本。
功能演示:
安裝後,右側會有RestServices側邊欄,點擊後會顯示當前項目全部請求地址,能夠進行輸入查詢,而後會直接把請求方式,地址以及參數列出來,默認請求服務器爲本機(localhost:8080),可根據需求更改。
全局快捷搜索:Ctrl \
同類工具對比的優缺點:
優勢:
其餘工具如:postman,DHC,jmeter等,此工具直接集成與項目,不須要輸入地址以及多個參數,便能直接訪問。
缺點:
沒法保存,每次使用參數都須要從新賦值,且沒有請求記錄。
總結:
此工具適合作接口測試,以及敏捷開發時使用,真證先後端分離式開發,還須要寫好接口文檔
---------------------
做者:想要這個暱稱
來源:CSDN
原文:https://blog.csdn.net/qq_22741461/article/details/81625079
版權聲明:本文爲博主原創文章,轉載請附上博文連接!
Idea 中解決maven 包衝突的問題(maven helper)
首先安裝插件 maven helper(由於我已經安裝了,因此沒 install 的按鈕了)
安裝完成後,在 pom 文件下方會出現這個東西
點進去你會發現彷彿回到了 eclipse
接下來到重點了,選中衝突選項 conflicts,這一列都是存在衝突的包
以fastjson 爲例
固然咱們調錯誤的時候也能夠直接搜索有問題的包,以下
選中右鍵就能夠 Exclude 啦,想用1.2.28就把其餘版本的Exclude掉,想用1.2.3就把其餘版本的Exclude掉,是否是很方便。
https://www.cnblogs.com/a8457013/p/9108698.html
Install plugin from disk:
COMPATIBLE BUILDS 號匹配的問題,若是不匹配,plugin就不能安裝成功:
網頁上每一個plugin Build版本:
IDE上的版本號:
在窗口的右上角小齒輪中取消勾選 複選框「Compact Empty Middle Packages」,Package路徑就會如下圖的形式展現。好處:能夠更改任一層目錄的文件夾名
右鍵菜單中勾選了「Compact Empty Middle Packages」,則只能rename最外層的packsge名字:
右鍵菜單中,去掉「Compact Empty Middle Packages」,則能夠rename任一層package名字
https://blog.csdn.net/lv_fq/article/details/51874181
Error:java: javacTask: source release 8 requires target release 1.8
解決辦法:
Settings【ctrl+alt+s】沒有shift鍵--》
Build,Execution,Deployment-->Compiler-->Java Compiler
在打開的界面中,將Project bytecode version改爲指望的jdk版本,
若是須要把Per-module bytecode version下每一個模塊的Target bytecode version按需進行更改
這兩個概念是 IntelliJ IDEA 的必懂知識點之一,請務必要學會。
如 果你是 Eclipse 用戶,而且已經看了上面給的連接,那 IntelliJ IDEA 首先告訴你一個很是重要的事情:IntelliJ IDEA 沒有相似 Eclipse 工做空間(workspace)的概念的。不少從 Eclipse 轉過來的人老是下意識地要再同一個窗口管理 n 個項目,這在 IntelliJ IDEA 是沒法獲得。IntelliJ IDEA 提供的體驗是:一個 Project 打開一個 Window 窗口。
對於 Project,IntelliJ IDEA 是這樣解釋的:
對於 Module,IntelliJ IDEA 是這樣解釋的:
通 過上面的介紹咱們知道,在 IntelliJ IDEA 中 Project 是最頂級的級別,次級別是 Module。一個 Project 能夠有多個 Module。目前主流的大型項目結構都是相似這種多 Module 結構,這類項目通常是這樣劃分的,好比:core Module、web Module、plugin Module、solr Module 等等,模塊之間彼此能夠相互依賴。經過這些 Module 的命名也能夠看出,他們之間應該都是處於同一個項目業務狀況下的模塊,彼此之間是有不可分割的業務關係的。
因此咱們如今總結:一個 Project
是由一個或多個 Module
組成,模塊之間儘可能是處在同一個項目業務的的狀況下,彼此之間互相依賴關聯。這裏用的是 儘可能
,由於 IntelliJ IDEA 的 Project 是一個沒有具有任何編碼設置、構建等開發功能的,主要起到一個項目定義、範圍約束、規範等類型的效果,也許咱們能夠簡單地理解爲就是一個單純的目錄,只是這個目錄命名上必須有其表明性的意義。
下面咱們以著名的 spring-framework
項目爲例介紹多 Module 的結構的:
Project
命名是:spring-framework。該目錄主要做用爲各個 Module
的頂層目錄進行約束,告訴協同者,這個目錄下都是 spring-framework
相關的,我毫不對放 Android 相關源碼、文檔、文件在上面的。該目錄並非以一個實際性的目錄來提現的,因此你訪問主頁是看不到的,可是當你 checkout
的時候,你必須爲這個項目命名,至於命名默認就是 spring-framework
。Project
下有二十來個 Module
,各個 Module
的命名也是有含義的,好比:spring-core
、spring-jdbc
、spring-jms
、spring-orm
、spring-web
、spring-webmvc
等等,咱們經過這些命名也能清楚地知道他們要表達的含義,這些 Module 下也都各自有 src
編碼目錄,能夠自行編碼和構建。Project name
的時候,Module name
和 Module file Location
自動進行改變,同時 Project location
和 Module file Location
徹底同樣,這也就表示,Project 目錄和 Module 目錄是同一個,因此此時 Project 目錄下就會有 src
目錄,可是咱們應該明白其本質仍是 Module 的目錄。關於 IntelliJ IDEA 的 Project 和 Module 終於解釋清楚了,可是因爲 IntelliJ IDEA 官網上又有一段話對此解釋得不夠好,特別是對 Eclipse 用戶來說:https://www.jetbrains.com/idea/help/eclipse-faq.html,其中有這樣兩句話:
你能夠把 IntelliJ IDEA 的 Project
當作 workspace
使用,IntelliJ IDEA 也是支持的,可是就像咱們前面解釋的那麼那麼多,這樣是很是不符合其初衷的,因此請別把這段話當作教義去學習。對此 zeroturnaround 的大牛也有針對此進行了說明:http://zeroturnaround.com/rebellabs/getting-started-with-intellij-idea-as-an-eclipse-user/3/
http://blog.csdn.net/ichsonx/article/details/48831277
(1)SVN相關的操做:
啓用:
方法1:VCS菜單下Enable Version Control Integration,點擊以後選擇相應的版本控制工具
方法2:Setting中Version Control 中右邊的 + - none 均可以操做。
關閉:
相似開啓中的方法2
(2)IntelliJ IDEA如何進行單元測試和代碼覆蓋率
http://jingyan.baidu.com/article/9faa72315be0ef473d28cb64.html
(3)解決中文亂碼問題其實很簡單。
按如下步驟設置,就能夠順利解決。
1、進入設置頁。File-->Settings (快捷鍵:Ctrl+Alt+S)
2、進入IDE Settings,在File Encoding 中 的 Default encoding 改成 GB2312。
3、肯定後,從新編譯代碼便可正常輸出中文
http://blog.csdn.net/angelhacker/article/details/6581577
(4)Show line numbers
IntelliJ IDEA打Jar
1.菜單:File->project stucture...(也能夠按快捷鍵ctrl+alt+shift+s)
2.在彈窗最左側選中Artifacts->左數第二個區域點擊"+",選擇jar,而後選擇from modules with dependencies,而後會有配置窗口出現,配置完成後,勾選Build On mak (make 項目的時候會自動輸出jar)->保存設置
3.而後菜單:Build->make project
4.最後在項目目錄下去找輸出的jar包(路徑在你添加Artifacts的時候設置的路徑,默認是%project%\out\artifacts\projectname_jar\)
若是你的程序不是web,也不是窗體,而是命令行的服務端,發現運行jar發現沒有反應,但在進程裏有javaw.exe,解決辦法是在這個jar文件所在目錄新建一個文本文件,內容以下:
@echo off
java -jar SocketServer.jar
而後將這個文件保存爲xxxx.bat,之後要運行項目就直接運行這個bat批處理文件。
debug,查看運行時表達式運算結果的short-cut key:
使用工具欄上的VCS更新時,Update Project 選擇」Merge"(平時執行的git pull = git fetch + git merge),Clean working tree before update 選擇「Using Stash"(有問題能夠直接在git bash中操做)
執行Ctrl+T命令,選擇上面截圖中的 「Merge」後,實際執行的git命令:
若是沒有更新,則只執行fetch操做
git fetch:將遠程服務器的數據更新到本地的
git pull看起來像git fetch+get merge,可是根據commit ID來看的話,他們實際的實現原理是不同的。 這裏借用以前文獻看到的一句話: 不要用git pull,用git fetch和git merge代替它。 git pull的問題是它把過程的細節都隱藏了起來,以致於你不用去了解git中各類類型分支的區別和使用方法。固然,多數時候這是沒問題的,但一旦代碼有問題,你很難找到出錯的地方。看起來git pull的用法會使你吃驚,簡單看一下git的使用文檔應該就能說服你。 將下載(fetch)和合並(merge)放到一個命令裏的另一個弊端是,你的本地工做目錄在未經確認的狀況下就會被遠程分支更新。固然,除非你關閉全部的安全選項,不然git pull在你本地工做目錄還不至於形成不可挽回的損失,但不少時候咱們寧願作的慢一些,也不肯意返工重來
https://blog.csdn.net/weixin_41975655/article/details/82887273
https://www.jetbrains.com/help/idea/2016.3/update-project-dialog-git.html
Rest Client
Intellij IDEA 裏面內置了一個 Rest Client,你們能夠經過Mac/windows: Command + Shift + a / ctrl+shift+a,而後搜索 Rest Client 來找到"REST Client",而後雙擊,便可打開
REST Client其實是Idea的一個plugin
http://www.cnblogs.com/jeffen/p/6169862.html
IDEA 查看UML的快捷鍵:
Ctrl + Alt + Shift + U
IntelliJ IDEA文件頭註釋模板
設置路徑:
File-Other Settings-Default Settings-Editor-File and Code Templates-Includes-File Header
設置File Header:
/** * @author : tang.cheng * Project Name : ${PROJECT_NAME} * Description : * @version : ${VERSION} ${DATE} ${TIME} * Modified by : */
/** * ${PROJECT_NAME} * @author : tang.cheng@xiaoyi.com * @version : ${YEAR}-${MONTH}-${DAY} ${TIME} * */
一、經常使用Java註釋標籤(Java comment tags)
@author 做者適用範圍:文件、類、方法
(*多個做者使用多個@author標籤標識,java doc中顯示按輸入時間順序羅列。)
例:* @author Leo. Yao
@param 輸入參數的名稱 說明 適用範圍:方法
例:* @param str the String用來存放輸出信息。
@return 輸出參數說明適用範圍:方法
例: * @return <code>true</code>執行成功;
* <code>false</code>執行失敗.
@since JDK版本用於標識編譯該文件所須要的JDK環境。
適用範圍:文件、類
例: * @since JDK1.6
@version 版本號用於標識註釋對象的版本號
適用範圍:文件、類、方法
例: * @version 1.0
@see 連接目標表示參考。會在java 文檔中生成一個超連接,連接到參考的類容。
用法:
@see #field
@see #Constructor(Type, Type...)
@see #Constructor(Type id, Type id...)
@see #method(Type, Type,...)
@see #method(Type id, Type, id...)
@see Class
@see Class#field
@see Class#Constructor(Type, Type...)
@see Class#Constructor(Type id, Type id)
@see Class#method(Type, Type,...)
@see Class#method(Type id, Type id,...)
@see package.Class
@see package.Class#field
@see package.Class#Constructor(Type, Type...)
@see package.Class#Constructor(Type id, Type id)
@see package.Class#method(Type, Type,...)
@see package.Class#method(Type id, Type, id)
@see package
@throws 異常標識出方法可能拋出的異常
適用範圍:方法
例: * @throws IOException If an input or output exception occurred
@deprecated 解釋標識對象過時
適用範圍:文件、類、方法
@link 連接地址連接到一個目標,用法相似@see。但常放在註釋的解釋中形如{@link …}
例:
/**
* @deprecated As of JDK 1.1, replaced by
* {@link #setBounds(int,int,int,int)}
*/
二、Java註釋的使用順序* @author (classes and interfaces only, required)
* @version (classes and interfaces only, required. See footnote 1)
* @param (methods and constructors only)
* @return (methods only)
* @exception (@throws is a synonym added in Javadoc 1.2)
* @see
* @since
* @serial (or @serialField or @serialData)
* @deprecated (see How and When To Deprecate APIs)
http://blog.csdn.net/tmj2014/article/details/12622241
Tomcat部署時war和war exploded區別
ServletContext(上下文),應用範圍內即整個WEB項目都能使用這個上下文
war模式:發佈模式,這是先打成war包,再部署 ; 【部署後的ServletContext是Servlet容器所在的目錄,譬如Tomcat】 war exploded模式:將WEB工程以當前文件夾的位置關係上傳到服務器【部署後的ServletContext是開發源代碼所在的目錄】;
在使用IDEA開發項目的時候,部署Tomcat的時候一般會出現下邊的狀況:
(1)war模式這種能夠稱之爲是發佈模式,看名字也知道,這是先打成war包,再發布;
(2)war exploded模式是直接把文件夾、jsp頁面 、classes等等移到Tomcat 部署文件夾裏面,進行加載部署。所以這種方式支持熱部署,通常在開發的時候也是用這種方式。
(3)在平時開發的時候,使用熱部署的話,應該對Tomcat進行相應的設置,這樣的話修改的jsp界面什麼的東西才能夠及時的顯示出來。
修改箭頭指向的位置,這樣的話就能夠實現熱部署:
使用war模式開發的時候遇到的坑
1、項目代碼的位置以下:
3、用於獲取上下文環境絕對路徑的代碼:
String contextPath = request.getSession().getServletContext().getRealPath("/");
4、兩種方式的實驗過程和結果:
(1)在使用war模式開發的時候,經過下邊這段代碼獲取項目的相對路徑:
其中C:\Software\apache-tomcat-8.0.32 是我Tomcat的所在位置。
能夠看出經過war模式是最終打包部署到Tomcat的位置。
(2)而後再看war exploded模式,一樣進行設置,運行同一段代碼,運行結果以下:
能夠看出最終獲得的是我這個項目的位置,其實就是這個項目target的位置。
https://blog.csdn.net/xlgen157387/article/details/56498938
實現Idea中修改jsp後熱部署
問題:修改JS或者是JSP頁面後,並無生效,每次修改都須要重啓一次Tomcat
解決辦法:
step1:Deployment標籤頁中,new Artifact時選擇 war exploded 。並檢查右邊的「Application context」設置與預期是否一致
step2:Server標籤頁中,
將 On 'Update' action中選擇「Update classes and resources」 ;
將On frame deactivation中選擇"Update classes and resources"
On 'update' action或On frame deactivation中沒有 「Update classes and resources」 ,是由於已經使用war【發佈模式】進行Deploy過了。
解決辦法:
step1:把war方式生成的Artifact刪除
step2:使用 war exploded方式從新new一個Artifact
須要在Tomcat的設置中爲:
on ‘update‘ action:當用戶主動執行更新的時候更新 快捷鍵:Ctrl + F9
on frame deactication:在編輯窗口失去焦點的時候更新
你能夠根據本身的需求進行設置,我這裏兩個都有設置。
問題2:若是你的工程中沒有 Update classes and resources 這個選項
在這種狀況下你更新後只能更新classes文件中的變更,並不能更新靜態文件中的變更。
緣由:在Deployment的選項中使用的是先將工程打成war包而後再去運行的
修改方式:
先remove當前工程,再次添加,添加的時候選擇Artifact
而後選擇工程名稱後面有 exploded的選項
注意:
選擇後記的填寫Application context
而後在Server中更改成:Update classes and resources
http://www.cnblogs.com/hhhd/p/6640875.html
在Intellij 中對分支打tag操做。
爲何要打tag?
tag中文的意思是標籤的意思,生活中的標籤有不少,好比產品的合格標籤,贈品標籤。
而在開發過程當中,可能會有這樣的問題出現,1 一個版本開發結束後,進行分支合併,在master上進行測試 上線,上線後發現有問題須要急需退回到上一個版本,這就要求咱們本身手動在服務器上備份不少的war或者備份不少的文件夾。2 若是通常的修改在沒有拉取新分支,而是在master上直接修改的話,修改後上線有問題,能夠及時的拉取退回。3 若是在發版的時候忘記了備份war或者備份文件夾,及時代碼進行回滾,代碼回滾會形成一部分提交無效。因此,打tag很必要。
git tag和git branches區別?
查知乎上說,tag就像里程碑標誌的一個點,branch是一個新的征程的一條線;tag 是靜態的,而branch要往前走;穩定版本備份用tag,新功能開發多人用branch,開發完以後再merge到master上。
tag是一個只讀的branch。
打tag git命令
$ git tag //列出git中現有的全部標籤 $ git tag -l v1.4.2.* //按照字母表順序給出tag v1.4.2.1 v1.4.2.2 $ git tag -a v1.4 -m ‘version 1.4′ //建立標籤, -a 加標籤,-m 加標籤註釋。 $ git tag v1.4-lw //建立輕量級標籤,不用-a,-m等參數 $ git show v1.4 //git show 命令查看相應標籤的版本信息,並連同顯示打標籤時的提交對象 $ git tag -a v1.2 9fceb02 //爲已提交的信息貼上標籤,爲校驗碼爲9fceb02*的版本貼上標籤。 $ git push --tags //若是上傳到服務器時不能上傳tag,可加上--tags命令。\
Intellij中打tag
官方說明: https://www.jetbrains.com/help/idea/2016.1/working-with-tags-and-branches.html
tag and branch: https://www.jetbrains.com/help/idea/2016.1/working-with-tags-and-branches.html
步驟:
一、You can create a tag in VCS -> Git -> Tag... menu. (打開VCS中的git --Tag 菜單)
commit 窗口:若是不填寫默認是最新的head代碼.
能夠填寫一個version的校驗碼:
2 Then open the push dialog with VCS -> Git -> Push and activate the checkbox "Push Tags".
在點擊create tag 以後, git push (或者ctrl+shif +k鍵)
選擇push tags , 能夠push 當前分支的tag , 也能夠選擇push 所有分支的tag。
怎樣拉取tag的代碼
checkout tag or revision,來檢出代碼。
https://www.jetbrains.com/help/idea/2016.1/working-with-tags-and-branches.html