IDEA擁有大量的JAVA開發者擁護,相比於開源的eclipse,IDEA擁有更簡潔直觀的界面,擁有更強大的自動補全功能,號稱能「一路敲回車完成編碼」。若是把IDEA和eclipse比做手機系統,IDEA就比如IOS,美觀、強大、人性化、傻瓜化,官方就幫你解決了大部分問題與操做。eclipse更像android,自由、開放、高度可定製,經過一系列的插件也能夠達到IDEA一樣的、甚至更個性化的體驗,可是操做難免讓人感受複雜、上手難。html
Gradle做爲build工具的新星,受到谷歌的大力擁護,直接欽定爲AS的御用build工具,在java web方面也大有取代maven上位的趨勢,已成爲IDEA默認支持的構建工具。gradle最大的優點是能夠直接在腳本中運行groovy語言,這就使得gradle具備很是強大的擴展性。java
使用IDEA+gradle所組成的工具爲項目開發帶來了極大的便利,熟練的使用它們相信會爲咱們帶來事半功倍的效果android
咱們寫一個java web程序大體須要如下步驟呢:程序員
在之前,這些操做都是須要咱們手動去完成的。好比當引入一個外部依賴時,咱們要專門去相應的地方拷貝獲得jar包,或者獲得源碼編譯出jar包,而後複製到classpath目錄下。寫完代碼後,咱們須要手動使用編譯工具編譯,而後手動去運行測試工具進行單元測試,若是沒問題的話,再手動打包成war包,而後手動上傳到服務器指定目錄部署。web
一個項目下來咱們將會在這些與寫代碼無關的事情上浪費大量時間,而這些行爲很明顯是重複的,徹底能夠編寫出相應的程序來幫助咱們自動的完成這一系列的操做。並且多人合做時,每一個人使用的外部依賴庫的版本可能不同,當合並項目後有可能會由於版本的不一樣帶來BUG,並且這些BUG很是不容易讓人發現,人們急需一個統一管理第三方依賴的工具。因而build工具出現了。spring
最新版的IDEA默認集成了gradle,不用安裝gradle程序就能夠在IDEA中建立gradle管理的項目apache
PS:引自百度知道tomcat
groupid和artifactId被統稱爲「座標」是爲了保證項目惟一性而提出的,若是你要把你項目弄到maven本地倉庫去,你想要找到你的項目就必須根據這兩個id去查找搜索。服務器
groupId通常分爲多個段,這裏我只說兩段,第一段爲域,第二段爲公司名稱。域又分爲org、com、cn等等許多,其中org爲非營利組織,com爲商業組織。舉個apache公司的tomcat項目例子:這個項目的groupId是org.apache,它的域是org(由於tomcat是非營利項目),公司名稱是apache,artigactId是tomcat。app
好比我建立一個項目,我通常會將groupId設置爲cn.zr,cn表示域爲中國,zr是我我的姓名縮寫,artifactId設置爲testProj,表示你這個項目的名稱是testProj,依照這個設置,你的包結構最好是cn.zr.testProj打頭的,若是有個StudentDao,它的全路徑就是cn.zr.testProj.dao.StudentDao
gradle是一個工具,經過執行build.gradle來實現build的功能,build.gradle這個build腳本是須要程序員本身來編寫的,可使用groovy語言來編寫,功能強大並且直觀。也能夠直接引入其餘人已經編寫好的腳本或工具來實現build,引入方法爲經過apply plugin: 'plugin名'語句實現,plugin能夠是build腳本也能夠是java程序。
gradle官方提供了不少經常使用的build plugin,好比咱們此次建立項目引入的‘war’plugin,他是繼承自‘java’這個plugin,在實現‘java’plugin中關於build java程序的基礎上,額外定義了java web項目目錄、打包war包等功能,剔除了打包jar包的功能,具體詳情能夠在gradle官方文檔中查看到。
build操做經過引入相應的plugin基本就能夠實現了,在平時的使用過程當中,咱們主要對gradle的操做是添加第三方依賴,讓gradle幫咱們管理這些第三方依賴。
只需三步,看起來並非很複雜。可是一個項目須要引入的第三方依賴的數量每每是十分巨大的,並且假如咱們下載的spring core版本是4.3.6,而且這是一個多人共同協做的項目,當你們的工做合併起來時,若是有人使用的是4.2.1版本,咱們是很難發現這個不一樣的,而這卻可能致使BUG。同時,要刪除某些再也不須要的依賴時咱們只能去classpath目錄下找到它並手動刪除掉。
gradle兼容maven倉庫,因此能夠直接使用maven倉庫來導入第三方依賴。maven倉庫是按照必定協議來存放各類第三方依賴庫的空間,能夠經過groupID和artifactid定位來找到本身須要的第三方依賴庫。
倉庫只須要定義一次,經過上面的配置gradle就會從定義好的倉庫中找到相應的依賴包下載下來並編譯好,而後就能夠直接在代碼中使用了。在mvnrepository這個遠程maven倉庫中,它提供了引入相應依賴包的配置,只需複製下來黏貼到buil.gradle文件中便可。
java web有本身的程序包規範(封包格式爲.war),相似於安卓中的apk文件。將其移動到web服務器(如tomcat)的相應目錄中,web服務器就會將其解壓、部署,將網站跑起來。固然也能夠直接將其解壓,將獲得的目錄移動到服務器程序指定的目錄下(相似於Apache的www目錄)便可。
將項目目錄結構定義的有別於程序包目錄結構,是爲了方便程序員在編寫程序的時候更加直觀的管理項目文件,由於程序包定義的目錄結構不必定適合人們直觀的對其進行操做。好比war包專門定義了一個Resource目錄,方便用戶集中管理資源文件和各類配置文件
IDEA對各類構建工具的適配就主要體如今這個界面,在這個界面能夠提供可視化的構建操做