2016年7月29日 星期五

Hello World (Gradle 2)

在build.gradle打上apply plugin: 'java'然後執行gradle tasks會看到有更多的task出現了,多出來的參考45.3. Tasks

※產生資料夾

apply plugin: 'java'
task xxx << {
    sourceSets*.java.srcDirs*.each{ it.mkdirs() }
    sourceSets*.resources.srcDirs*.each{ it.mkdirs() }
}

※打上 gradle xxx 就執行了,如果不確定,可以先不要mkdirs(),先print it看一下

※srcDirs和resources.srcDirs在Table 45.9. Java plugin - source set properties有寫

※第一行產生src/main(test)/java

※第二行產生src/main(test)/resources,可根據需要再加


※build、clean

打上gradle build會產生build資料夾,clean會刪除

※build的架構如下:

build有兩個子資料夾libs和tmp,libs就一個jar檔,名稱是專案名稱
tmp下還有資料夾叫jar,裡面放的就一個檔案,叫MANIFEST.MF,內容也只有一行
Manifest-Version: 1.0

也可以像maven那樣,用gradle clean build,只用build會顯示11個,用了clean build,第一行會出現clean,如下:

假設下的是build,那麼他會從compileJava一直到build
又假設下的是test,那麼他會從compileJava一直到test
各個功能在做什麼事,要看Table 45.1. Java plugin - tasks,但這張表沒照順序,以我上面的圖,或你自己執行的為準
Example 44.2. Building a Java project還有
clean:刪除build資料夾
assemble:編譯但不測試
check:編譯並測試
所以我知道的總共15個

還有三個在dos沒有看到,javadoc、uploadArchives、cleanTaskName,javadoc會在build底下產生一個子資料夾就docs,其他兩個我試的結果都是找不到task


※測試

1.在src\main\java裡加上一個package,叫ZYX,裡面放一支Class,叫App.java,自己寫一支Hello World

2.下gradle build,會產生build資料夾,裡面有classes和libs等,classes最裡面真的有class檔,而libs裡有jar檔,jar檔裡也看得到class

3.下java -cp build\libs\gradle_test.jar ZYX.App即可看到結果,如下圖:



沒有留言:

張貼留言