它佔據了gradle的第乙個階段也就是初始化階段,這個階段就是根據settings.gradle檔案的配置生成project物件,使用者可以在settings.gradle檔案中呼叫settings的各種方法配置專案,最常用的就是include方法,它可以將使用者新建的module加入專案中。
管理原始碼資源庫等存放的路徑,如果使用者未曾修改過會採用預設的路徑配置,也就是約定優於配置。android配置sourceset介面是androidsourceset,裡面有各種資源、原始碼、so檔案等路徑的配置。
sourcesets
}
implementation-class=com.example.plugin.myplugin
// build.gradle內容
sourcesets
resources
}}
接下來需要定義傳遞進入外掛程式的引數,通常都會把引數定義成乙個資料物件,使用者配置好資料物件,外掛程式任務再從project屬性中拿到使用者配置的引數。
// 引數物件
class
versionentity
class
myplugin
implements
plugin
}
上面的project.extensions.create就是在建立配置物件,型別是versionentity類,接著又向project的taskcontainer物件裡新增了型別writetask型別的任務,任務名稱為writetask。現在需要自定義writetask型別,通常自定義的任務都是繼承自defaulttask型別,裡面被@taskaction註解的方法就是任務執行execute方法時呼叫的動作。
class
writetask
extends
defaulttask
}
在writetask內部會先從project物件的myversion屬性物件裡拿出使用者配置的資料,接下來將所有資料分別列印出來,簡單的外掛程式已經開發完成,接著需要在構建指令碼中使用外掛程式功能。
// 應用外掛程式
// 配置傳遞給外掛程式的引數
myversion
// 將writetask任務掛接到assemble任務的最後再執行
afterevaluate
}
執行gradle assemble命令接著檢視結果,會發現在配置階段列印和執行階段分別執行了外掛程式的輸出命令。
// 配置階段
hello world, i am a plugin...
// 執行階段
versioncode =
1000, versionname =
1.0.0, versioninfo = hello-world1000
-1.0
.0
簡單的Apache URL Rewrite例項
下面開始講如何設定url rewrite.apache 伺服器 比如我們有新聞頁 news readmore.php?id 4875 我們要做成靜態頁 news top2007,4875.html 首先進入apache的目錄找到名為httpd.conf的檔案。本站為 apache2.2 conf h...
閉鎖CountDownLatch的簡單實現
public class testcountdownlatch catch exception e finally t.start system.out.println c start.countdown 到達此處時,由於finally中已經呼叫了三次countdown 方法,計數已經是0了 所以此...
springboot整合redis簡單實現
1.引入jar包 org.springframework.boot spring boot starter data redis 2.1.10.release org.apache.commons commons pool2 2.4.3 2.properties 引數配置 spring.redis....