Gradle Plugin簡單實現

2021-08-19 22:49:40 字數 1481 閱讀 7184

它佔據了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....