rest規範 ; restful 風格; gradel介紹 ; idea安裝 ;

【說明】上午整理了一下心情;下午繼續開始任務,瞭解了restful,知道了那個牛人的博士論文,下載了管理工具gradle,而且部署了環境;晚上安裝了idea繼承環境而且建了一個簡單的gradle項目(對着教程第一次使用idea我也是須要適應半天)html

一:今日完成java

1)rest架構規範node

2)idea環境安裝android

3)gradle插件使用web

二:明日計劃spring

1)創建本身的REST接口。npm

2)使用PostMan/dhc測試本身寫的接口,確認接口能夠正常使用。編程

3)任務二完成restful

三:疑難問題架構

restful架構搞的我也是一臉懵逼,看了大量的文章,包括上層的思想介紹,下層的代碼演示,仍是不得要領

四:思考總結

今天配置環境變量的時候居然由於目錄帶有中文出現了編譯問題!下次要注意

    1. Gradle是一種構建工具,它能夠幫你管理項目中的差別,依賴,編譯,打包,部署......,你能夠定義知足本身須要的構建邏輯,寫入到build.gradle中供往後複用.
    2. Gradle不是一種編程語言,它不能幫你實現軟件中的任何實際功能
    3. ant能夠自動化打包邏輯。
      maven也能夠自動化打包,相比於ant,它多作的事是幫你下載jar包。
      可是maven的打包邏輯太死板,定製起來太麻煩,不如ant好用。gradle就是又能自動下jar包,又能本身寫腳本,而且腳本寫起來還比ant好用的這麼個東西。


      AS其實就是Intellij IDEA的安卓開發環境特供版(谷歌定製版),Intellij IDEA是有收費版本的IDE。
      Ant和Maven都是基於XML的構建工具,Gradle是用Groovy編寫的構建工具,Groovy是JVM衍生的與JAVA語法高度兼容的動態強類型語言。

      Gradle經過編寫一個名爲build.gradle的腳本文件對項目進行設置,再根據這個腳本對項目進行構建(複雜的項目也有其餘文件)
      Gradle 腳本本質上就是Groovy腳本,只不太高度利用了groovy的語法糖,例如省略方法參數括號和省略句尾分號等,讓代碼看起來像DSL。
      因此幾乎全部java和groovy支持的語法,它的腳本都支持。(使用JAVA和GROOVY的SDK應該也是沒問題的)

      Gradle支持基於慣例的構建,並有豐富的適合不一樣情景下的插件庫,光有官方用戶手冊支持的就有20多種,方便構建。

      Gradle裏有兩個基本概念:項目(projects)和任務(tasks)。項目由多個任務組成,一個項目能夠理解爲提供給不一樣設備的構建版本,如桌面版、網頁版、安卓版、iOS版等等,也能夠理解爲一種行爲,例如部署應用到生產環境。任務至關於Ant的target,能夠理解成一個構建中原子性的工做,例如編譯、打包、執行等。須要注意的是,Ant中他本身的命令例如javac、copy等也叫作task,但Ant的task遠沒有Gradle的task那麼自由。

      Gradle的構建分兩個階段,第一階段是設置階段(configuration phase),分析構建腳本,處理依賴關係和執行順序等,腳本自己也須要依賴來完成自身的分析。第二階段是執行階段(execution phase),此階段真正構建項目並執行項目下的各個任務。

      Ant與Maven對於Gradle,前者編寫容易,但功能有限,須要人工操做的過程也多;後者依託於龐大的依賴倉庫,所以有着強大的外部依賴管理,但添加本地依賴並不方便,且項目不能靈活修改。而Gradle能很好地結合Ant與Maven各自的優勢,能夠隨意的編寫任務並組合成項目,直接利用Maven倉庫,而且能很好的支持傳遞依賴和內部依賴。(本部分爲我的主觀意見,可能與大多數人的意見並不相同)(其實也都是別人的我的主觀意見,來源於我當初搜索的Gradle相關文章內容)

      通俗一點類比成吃飯的話,大體就是:Ant是本身買菜洗菜燒水作飯,Maven是去飯店點餐,Gradle是3D打印食物。

一句話歸納就是:依賴管理和任務執行。

像Ruby裏面的bundler+rake,像iOS中的cocoapods,像node中的npm+grunt.

通俗的講就是:你的項目須要哪些第三方庫,它幫你把它們都下載下來,而且編譯好放到指定的位置,你就直接能夠import後用了。

它自己是基於Apache的ant和maven的,但都不是特別好用,要引入一個庫,還得寫好多行的XML,麻煩死了。並且他們在任務執行上都比較弱,因此gradle就逐漸發展壯大了並被Google所推崇了。

編譯源代碼只是整個軟件開發過程的一個方面,更重要的是,你要把你的軟件發佈到生產環境中來產生商業價值,因此,你要運行測試,構建分佈、分析代碼質量、甚至爲不一樣目標環境提供不一樣版本,而後部署。

整個過程能夠分紅如下幾個步驟:

  • 編譯源代碼
  • 運行單元測試和集成測試
  • 執行靜態代碼分析、生成分析報告
  • 建立發佈版本
  • 部署到目標環境
  • 部署傳遞過程
  • 執行冒煙測試和自動功能測試
若是你手工去操做這些過程會很繁瑣,效率低下,Gradle提供自動化的構建機制,上面的每一個步驟均可以表示成Gradle裏面的一個任務(Task),任務之間能夠相互依賴,好比你定義任務A和任務B,
defaultTasks 'taskB' task taskA << { println "i'm task A" } task taskB << { println "i'm task B, and I depend on " + taskA.name } taskB.dependsOn taskA 

運行命令$ gradle -q以後(參數q讓Gradle不要打印錯誤以外的日誌),就能看到以下的預期輸出:

i'm task Ai'm task B, and I depend on taskA執行完以後Gradle會生成相應的報告,若是沒有問題就能夠發佈到生產環境中。Gradle腳本是基於Groovy領域特定語言,也就是說構建文件也是代碼,Maven引入的XML配置文件可讀性和可擴展性比較差,Gradle可讓你像寫代碼同樣寫出容易維護、可複用、可讀性好、易於理解的構建代碼。Gradle一樣引入了依賴管理、倉庫和標準項目佈局,Gradle引入的領域特定語言使得添加和刪除依賴很是方便,你只須要在dependency塊裏面添加一行代碼,註明要在哪一個配置部分引入依賴,以及要引入哪一個依賴,好比:
dependencies { compile('org.springframework:spring-core:2.5.6')//表示編譯期依賴spring-core這個庫 testCompile('junit:junit:4.7')//表示測試代碼的時候依賴junit這個庫 } 
傳統的構建工具好比ant一開始並無引入中央倉庫的概念,他須要手動複製依賴的庫文件到指定的目錄,這使得這些JAR文件添加到版本控制系統當中,而Gradle會自動解析你的依賴配置,從中央倉庫好比mavenCentral()中解析並下載依賴到你的本地倉庫中,這些文件並不會添加到版本控制系統當中,Gradle也支持傳遞依賴,你也能夠排錯部分傳遞依賴或者乾脆去掉傳遞依賴,還能夠支持動態版本,只須要把最後一位數字改爲+號。Gradle支持多項目構建,當你的項目變得愈來愈龐大的時候,維護起來會比較困難,Gradle多項目構建使得你能夠根據代碼的功能把項目分紅幾個子項目,好比web項目開發中把項目分紅邏輯、視圖和控制三個模塊,每一個模塊能夠有各自的配置和依賴,也能夠定義通用的配置。當你須要爲不一樣的環境打生成不一樣的發佈時,以往多是爲每個目標環境新建一個過程,有了gradle你不須要重複的工做,你會很容易生成不一樣的版本,你能夠指定多個版本共同的構建邏輯,也能夠給他們單獨指定一些腳本。總而言之,Gradle並無引入太新鮮的東西,它是一個結合Ant和Maven理念的優秀實現,最重要的就是引入了Groovy語言,使得構建代碼更加容易維護、可讀性強、易於擴展,給了你充分的自由去自定義你的項目。
 
  1. 依賴:Android Studio, Gradle, 其中過程,


    Android Studio使用Gradle來編譯Android apk 本文大體講述其中過程


    Gradle

    依賴:Apache Ant ,Apache Maven ,項目自動化建構工具 ,Groovy, 特定領域語言(DSL),


    Gradle =>一個基於Apache Ant和Apache Maven概念的項目自動化建構工具。它使用一種基於Groovy的特定領域語言(DSL)


    Apache Ant => 由Apache 提供的自動化軟件構建工具 (能夠理解爲其負責軟件的編譯) 開始於2000年左右

    Apache Maven => 是由Apache 提供的管理項目的構建 報告和文檔的軟件項目管理工具 (我將其理解爲 經過pom.xml來描述軟件依賴關係 並提供一個雲端類庫) 開始於2001年左右

    項目自動化建構工具 => 抽象項目編譯過程 提供一個容易使用的接口的工具

    Groovy => 一門編程語言 基於JVM 的面對對象的動態腳本語言

    特定領域語言=>爲了解決某個特定領域的問題 而編寫的語言 通常基於其餘語言


    Android Studio =>2013年穀歌推出的Android開發環境 使用Gradle 做爲編譯工具


    其中過程

    依賴:grdle基本知識,編譯過程,


    Android Studio 使用Gradle作爲Android apk的編譯工具 在android studio執行run 實際上底層調用的是gradle 命令 由gradle再去使用Android SDK中編譯工具 這主要是由於直接使用sdk的編譯工具太麻煩太痛苦 而gradle提供了一個很好的接口 讓咱們能經過命令行來編譯android apk


    grdle基本知識

    gradle經過解析build.gradle這個文件來運行

    build.gradle 主要由task和一些配置組成,task之間有相互依賴關係 經過這些依賴關係和配置就能編譯項目

    能夠經過 apply plugin 來加入一些默認的task 例如

    apply plugin: 'java'

    這是java的插件 他加入了許多編譯java的task 若是你的目錄結構正確 那麼經過gradle 運行 task 就能編譯java項目 

    和Maven同樣,Gradle只是提供了構建項目的一個框架,真正起做用的是Plugin。Gradle在默認狀況下爲咱們提供了許多經常使用的Plugin,其中包括有構建Java項目的Plugin,還有War,Ear等。與Maven不一樣的是,Gradle不提供內建的項目生命週期管理,只是java Plugin向Project中添加了許多Task,這些Task依次執行,爲咱們營造了一種如同Maven般項目構建週期。

     

相關文章
相關標籤/搜索