idea配置代碼模板的地方【只用配置includes即可,不用配置Files tab下的內容】:
Editor-> File and Code Templates->Includes
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記錄的轉換。
idea在單元測試中設置JVM參數
運行一次測試用例,然后在工具欄中點 Run/Debug旁邊的向下的小箭頭:
選擇Edit Configuration…
可以看到 VM Options 參數設置,並且可以指定具體的方法
一定保存Apply,不然不會生效:
市場插件
-
阿里代碼規約檢測
-
快捷鍵提示工具:Key promoter X
-
代碼注解插件: Lombok
-
代碼生成工具:CodeMaker
-
單元測試測試生成工具:JUnitGenerator
-
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等,此工具直接集成與項目,不需要輸入地址以及多個參數,便能直接訪問。
缺點:
無法保存,每次使用參數都需要重新賦值,且沒有請求記錄。
總結:
此工具適合做接口測試,以及敏捷開發時使用,真證前后端分離式開發,還需要寫好接口文檔
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
idea中Eclipse Code Formatter插件設置和使用,以及注釋模板的修改
在settings里面找到plugins這個選項,搜索Eclipse Code Formatter,點擊安裝,重啟idea即可進行配置;
首先,先安裝Eclipse Code Formatter插件;
上面是已經安裝了。如果沒有安裝,安裝后,重啟IDE
選擇我們這導入的格式化模板:
https://www.cnblogs.com/zhang-yawei/p/9991011.html
如果Scheme下沒有剛才導入的eclipse style,則可以再重新導入一次:
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 對其他 IDE 轉過來的用戶有特別優待,對其專門整理了非常棒的資料,還請其他 IDE 過來的用戶抽時間查看,會有很大幫助:
- Eclipse 用戶可以看:https://www.jetbrains.com/idea/help/eclipse.html
- NetBeans 用戶可以看:https://www.jetbrains.com/idea/help/netbeans.html
Project 和 Module 介紹
這兩個概念是 IntelliJ IDEA 的必懂知識點之一,請務必要學會。
如 果你是 Eclipse 用戶,並且已經看了上面給的鏈接,那 IntelliJ IDEA 首先告訴你一個非常重要的事情:IntelliJ IDEA 沒有類似 Eclipse 工作空間(workspace)的概念的。很多從 Eclipse 轉過來的人總是下意識地要再同一個窗口管理 n 個項目,這在 IntelliJ IDEA 是無法得到。IntelliJ IDEA 提供的體驗是:一個 Project 打開一個 Window 窗口。
對於 Project,IntelliJ IDEA 是這樣解釋的:
- Whatever you do in IntelliJ IDEA, you do that in the context of a project. A project is an organizational unit that represents a complete software solution. It serves as a basis for coding assistance, bulk refactoring, coding style consistency, etc.
- Your finished product may be decomposed into a series of discrete, isolated modules, but it's a project definition that brings them together and ties them into a greater whole.
- Projects don't themselves contain development artifacts such as source code, build scripts, or documentation. They are the highest level of organization in the IDE, and they define project-wide settings as well as collections of what IntelliJ IDEA refers to as modules and libraries.
- 鏈接地址:https://www.jetbrains.com/idea/help/project.html
對於 Module,IntelliJ IDEA 是這樣解釋的:
- A module is a discrete unit of functionality which you can compile, run, test and debug independently.
- Modules contain everything that is required for their specific tasks: source code, build scripts, unit tests, deployment descriptors, and documentation. However, modules exist and are functional only in the context of a project.
- Configuration information for a module is stored in a .iml module file. By default, such a file is located in the module's content root folder.
- Development teams, normally, share the .iml module files through version control.
- 鏈接地址:https://www.jetbrains.com/idea/help/module.html
通 過上面的介紹我們知道,在 IntelliJ IDEA 中 Project 是最頂級的級別,次級別是 Module。一個 Project 可以有多個 Module。目前主流的大型項目結構都是類似這種多 Module 結構,這類項目一般是這樣划分的,比如:core Module、web Module、plugin Module、solr Module 等等,模塊之間彼此可以相互依賴。通過這些 Module 的命名也可以看出,他們之間應該都是處於同一個項目業務情況下的模塊,彼此之間是有不可分割的業務關系的。
所以我們現在總結:一個 Project
是由一個或多個 Module
組成,模塊之間盡量是處在同一個項目業務的的情況下,彼此之間互相依賴關聯。這里用的是 盡量
,因為 IntelliJ IDEA 的 Project 是一個沒有具備任何編碼設置、構建等開發功能的,主要起到一個項目定義、范圍約束、規范等類型的效果,也許我們可以簡單地理解為就是一個單純的目錄,只是這個目錄命名上必須有其代表性的意義。
下面我們以著名的 spring-framework
項目為例介紹多 Module 的結構的:
- 項目主頁:https://github.com/spring-projects/spring-framework:
- 該項目的
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
編碼目錄,可以自行編碼和構建。
- 相比較於多 Module 項目,小項目就無需搞得這么復雜。只有一個 Module 的結構 IntelliJ IDEA 也是支持的,並且 IntelliJ IDEA 創建項目的時候,默認就是單 Module 的結構的。
- 如上圖 Gif 圖演示,在輸入
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,其中有這樣兩句話:
- An Eclipse workspace is similar to a project in IntelliJ IDEA
- An Eclipse project maps to a module in IntelliJ IDEA
你可以把 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)解決中文亂碼問題其實很簡單。
按以下步驟設置,就可以順利解決。
一、進入設置頁。File-->Settings (快捷鍵:Ctrl+Alt+S)
二、進入IDE Settings,在File Encoding 中 的 Default encoding 改為 GB2312。
三、確定后,重新編譯代碼即可正常輸出中文
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} * */
1、常用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)}
*/
2、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模式開發的時候遇到的坑
一、項目代碼的位置如下:
三、用於獲取上下文環境絕對路徑的代碼:
String contextPath = request.getSession().getServletContext().getRealPath("/");
四、兩種方式的實驗過程和結果:
(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
步驟:
1、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
idea 使用maven構建項目時,target bytecode version經常自動變化
解決方法:
在工程的pom.xml中添加
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
或者:添加properties節點
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <encoding>UTF-8</encoding> </properties>
https://www.cnblogs.com/nxzblogs/p/10798150.html
如果上面這4個地方的java sdk,java complier 都設置正常,應該不會報complier版本不對了
Language Level:
1.3-Plain old Java
1.4-'assert' keyword
5-'enum' keyword,generics,autoboxing etc.
6-@Override in interfaces
7-Diamonds,ARM,multi-catch etc.
8-Lambdas,type annotations etc.
9-Modules,private methods in interfaces etc.
10-Local variable type inference
11-Local variable syntax for lambda parameters
12-No new language features
12(Preview)-No new language features
13-No new language features
13(Preview)-Switch expressions,text blocks
X-Experimental features
Lombok Requires Annotation Processing
Annotation processing seems to be disabled for the project "jhipster".
For plugin to function correctly, please enable it under "Settings > Build > Compiler > Annotation Processors"
Click on this notification to go to Settings now.
二、解決方法
file--->settings---> Build,Execution,Deployment-->Compiler-->Annotation Processors-->勾選Enable annotation processing
如果 在設置之后依然不能解決問題。
解決辦法:
檢查已安裝的 lombok 插件,看是否是因為更新導致我的插件丟失,造成不可用,但是搜索后顯示插件已安裝。在這個配置頁面隨手點了點其他頁簽,此時發現了問題的端倪。已安裝列表中赫然提示我的 lombok 插件需要更新,於是 update 插件,重啟 idea,一切搞定。
心得:
有時候出的問題其實很簡單,只是我們在一開始將它想復雜了,到處尋求解決辦法依然沒有什么結果,於是愈發的凌亂。其實靜下心來從頭慢慢理會發現這個問題真的很好解決。
這個簡單的問題將它記錄下來,也算是對自己的一種提醒,日后遇到問題不要病急亂投醫,一點點解決就好。