1. 程式人生 > >《Gradle user guide》原創翻譯

《Gradle user guide》原創翻譯

譯者注:從第六章開始翻譯,為了個人學習需要,先省略了前面已經瞭解和不太相關部分。見諒。

6.1 專案和任務

Gradle裡的一切都基於兩個基本概念:專案和任務。(projects and tasks)。

每個Gradle構建都是由一個或多個專案組成的。專案代表你的軟體中可構建的一些元件。具體的含義取決於你實際構建的東西。例如,專案可能代表一個JAR或者一個web工程。它也可能代表一個由其他專案生成的jar包組成的ZIP壓縮包。專案不必代表準備構建的東西,它應該代表準備完成的事情,如,把你的應用釋出到生成環境中。如果你仍感覺有些模糊也不用擔心。Gradle對約定式構建的支援,給出了對專案更明確的定義。

每個專案由一個或多個任務組成。任務代表一些原子化的構建過程中執行的工作。如,編譯一些類,建立一個JAR包,生成javadoc,或是釋出一些歸檔到庫中。

現在,我們將會關注在一個專案中定義一些簡單的任務。在後面的章節,我們將會學習處理多專案以及更多的關於專案和任務的知識。

6.2 Hello world

你通過使用gradle命令來執行Gradle構建。gradle命令在當前路徑下查詢build.gradle配置檔案。我們稱這個build.gradle檔案為構建指令碼,或像我們隨後看到的那樣,嚴格的稱其為構建配置指令碼。構建指令碼定義了專案和它的任務。

嘗試建立名為build.gradle的構建指令碼。
例子6.1 第一個構建指令碼

build.gradle

task hello {
    doLast {
        println 'Hello world!'
    }
}}

在命令列中,進入包含指令碼的目錄然後通過gradle -q hello命令執行構建指令碼。

例子6.2 執行構建指令碼

gradle -q hello的輸出</p> <blockquote> <p> > gradle -q hello
Hello world!
 </p> </blockquote> <table cellpadding="0" cellspacing="0"> <tbody> <tr> <td> -q選項做了什麼?
使用者手冊中的大多數例子都是用-q選項執行的。這會遮蔽Gradle’s 日誌資訊,因此只會顯示任務的輸出資訊。這會使使用者手冊中的例子的輸出簡潔一些。如果你不想可以不使用該選項。參見第18章,記錄更詳細的日誌,影響Gradle輸出的命令列選項。</td> </tr> </tbody> </table> 這裡發生了什麼?構建指令碼定義了一個單獨的稱作hello的任務,並且給其增加了一個操作。當你執行gradle hello命令的時候,Gradle執行了hello任務,該任務依次執行你提供的操作。操作是等待執行的包含一些Groovy程式碼的閉包。

如果你認為這看起來和Ant的目標相似,那麼你答對了。Gradle的任務就等於Ant中的目標(target)。不過,如你將要看到的那樣,它強大的多。我們使用了與Ant不用的術語,是因為我們覺得任務比目標更貼切。不過,這裡術語的使用與Ant產生了衝突,在Ant稱命令為任務,如javac或copy。所以,當我們說任務的時候,我們都是指Gradle裡的任務,等價於Ant裡的目標。如果我們討論Ant裡的任務(Ant命令),我們會說ant 任務。

譯者注:接下來會直接翻譯第七章的內容,因為和譯者直接相關。是關於構建Java工程的。</div>