中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

做電影網(wǎng)站模板教學(xué)設(shè)計(jì)免費(fèi)注冊(cè)個(gè)人網(wǎng)站不花錢(qián)

做電影網(wǎng)站模板教學(xué)設(shè)計(jì),免費(fèi)注冊(cè)個(gè)人網(wǎng)站不花錢(qián),聯(lián)合會(huì)網(wǎng)站建設(shè),南沙做網(wǎng)站公司1. 前言 本文介紹在Android中,如何基于Gradle 8.2,創(chuàng)建Gradle插件。 1.1 本文環(huán)境 Android Studio 版本 : Android Studio Hedgehog | 2023.1.1Gralde版本 : gradle 8.2 使用 Android Gradle 插件升級(jí)助理 Android Gradle 插件版本說(shuō)明 1.2 為什么要寫(xiě)…

1. 前言

本文介紹在Android中,如何基于Gradle 8.2,創(chuàng)建Gradle插件。

1.1 本文環(huán)境

  • Android Studio 版本 : Android Studio Hedgehog | 2023.1.1
  • Gralde版本 : gradle 8.2

使用 Android Gradle 插件升級(jí)助理
Android Gradle 插件版本說(shuō)明

1.2 為什么要寫(xiě)插件

可以將相關(guān)代碼抽取出來(lái),而不是耦合在build.gradle中,成為通用性的插件,可以在多個(gè)項(xiàng)目中復(fù)用。
比如com.android.application就是我們最為熟悉的Android插件。

plugins {id 'com.android.application'
}

2. 創(chuàng)建插件

2.1 新建項(xiàng)目

新建MyGradlePluginTest項(xiàng)目,這里選擇Groovy DSL。

在這里插入圖片描述

2.2 新建Gradle插件Module

這里選擇Java or Kotlin Library,也可以選擇Android Library
在這里插入圖片描述

2.3 修改build.gradle

plugins {id 'java-gradle-plugin'
}gradlePlugin {plugins {//MyTestPlugin { //這種方式也行create("MyTestPlugin") {//插件idid = 'com.heiko.myplugin'//插件的包名+類(lèi)名implementationClass = 'com.heiko.myplugin.MyPlugin'}}
}

2.4 新建插件類(lèi)

對(duì)應(yīng)implementationClass中的路徑,新建插件類(lèi) MyPlugin

package com.heiko.myplugin;import org.gradle.api.Plugin;
import org.gradle.api.Project;class MyPlugin implements Plugin<Project> {@Overridepublic void apply(Project project) {System.out.println("這是我的第一個(gè)插件!");}
}

3. 發(fā)布插件

3.1 依賴(lài)maven-publish

build.gradle中,添加maven-publish插件,然后配置發(fā)布插件的信息和倉(cāng)庫(kù)信息。
這里的maven倉(cāng)庫(kù)配置的是本地的,僅用作演示。實(shí)際項(xiàng)目中,應(yīng)該使用真實(shí)的maven倉(cāng)庫(kù)服務(wù)器更合理些。
關(guān)于maven倉(cāng)庫(kù)更多的操作,詳見(jiàn)我的另一篇文章 : Android Module上傳到Maven倉(cāng)庫(kù) 及 實(shí)現(xiàn)同時(shí)上傳到多個(gè)Maven倉(cāng)庫(kù)

plugins {//...省略了代碼...id 'maven-publish'
}//...省略了代碼...println("原本的version:" + version)
println("原本的group:" + group)//設(shè)置group
group = 'com.heiko.group'
//設(shè)置版本號(hào)
version = "1.0.0"println("設(shè)置后的group:" + group)
println("設(shè)置后的version:" + version)afterEvaluate {/*這部分代碼不需要配置,會(huì)根據(jù)gradlePlugin中的進(jìn)行生成除非使用老版本的插件依賴(lài)方式(classpath):需要指定artifactId的情況下,才需要使用publications {maven(MavenPublication) {groupId = groupartifactId = 'MyPlugin'version = versionfrom components.java}}*/publishing {// 配置倉(cāng)庫(kù)地址repositories {maven {url = uri('../repo')}}}
}

build.gradle的完整代碼如下

plugins {id 'java-gradle-plugin'id 'maven-publish'
}gradlePlugin {plugins {//MyTestPlugin { //這種方式也行create("MyTestPlugin") {//插件idid = 'com.heiko.plugin.myplugin'//插件的包名+類(lèi)名implementationClass = 'com.heiko.myplugin.MyPlugin'}}
}println("原本的version:" + version)
println("原本的group:" + group)//設(shè)置group
group = 'com.heiko.group'
//設(shè)置版本號(hào)
version = "1.0.0"println("設(shè)置后的group:" + group)
println("設(shè)置后的version:" + version)afterEvaluate {/*這部分代碼不需要配置,會(huì)根據(jù)gradlePlugin中的進(jìn)行生成除非使用老版本的插件依賴(lài)方式(classpath):需要指定artifactId的情況下,才需要使用publications {maven(MavenPublication) {groupId = groupartifactId = 'MyPlugin'version = versionfrom components.java}}*/publishing {// 配置倉(cāng)庫(kù)地址repositories {maven {url = uri('../repo')}}}
}

發(fā)布插件

這個(gè)時(shí)候,點(diǎn)擊下Sync同步下代碼,然后可以在右側(cè)GradleTab中,找到publishing,里面有publish選項(xiàng),我們雙擊它,就開(kāi)始執(zhí)行發(fā)布插件的操作了。

在這里插入圖片描述
上傳插件成功后,可以看到如下信息
在這里插入圖片描述

4. 使用插件

4.1 添加Maven倉(cāng)庫(kù)

pluginManagement {repositories {//省略了其他倉(cāng)庫(kù)...maven {url 'repo'}}
}

4.2 依賴(lài)插件

在更目錄下的build.gradle中,依賴(lài)插件

plugins {id 'com.android.application' version '8.2.0' apply false//省略了其他插件代碼id 'com.heiko.plugin.myplugin' version '1.0.0' apply false
}

通常默認(rèn)配置會(huì) 立馬 解析(resolve) 并 應(yīng)用(apply) 插件。
而 apply 設(shè)為 false, 表示 不應(yīng)用插件到 根項(xiàng)目。目的是 提前解析 插件,保持一樣的版本。

4.3 應(yīng)用插件

app目錄下的build.gradle中,應(yīng)用插件

plugins {id 'com.android.application'id 'org.jetbrains.kotlin.android'//應(yīng)用插件id 'com.heiko.plugin.myplugin'
}

4.4 同步項(xiàng)目

點(diǎn)擊Sync同步下項(xiàng)目,可以看到我們的插件打印的日志了

在這里插入圖片描述

5. 使用Groovy編寫(xiě)插件

上文中我們是使用java語(yǔ)言來(lái)編寫(xiě)的插件,那么如果使用Groovy語(yǔ)言來(lái)編寫(xiě)插件,需要怎么操作呢 ?

5.1 添加groovy插件

為了識(shí)別groovy語(yǔ)言,我們需要在MyPlugin目錄下的build.gradle中添加groovy插件

plugins {id 'java-gradle-plugin'//添加groovy插件id 'groovy'id 'maven-publish'
}

5.2 新建groovy目錄

在和java同級(jí)別的目錄下,新建groovy目錄,groovy目錄下需要和原java目錄一樣
在這里插入圖片描述

5.3 新建MyPluginGroovy.groovy

groovy目錄下,要把MyPlugin.java改為MyPlugin.groovy ,這里我為了方便區(qū)分,把名稱(chēng)改為了MyPluginGroovy.groovy 。

package com.heiko.myplugin;import org.gradle.api.Plugin;
import org.gradle.api.Project;class MyPluginGroovy implements Plugin<Project> {@Overridepublic void apply(Project project) {println "這是我的第一個(gè)Groovy插件!"}
}

5.4 修改implementationClass

修改MyPlugin目錄下的build.gradle文件中的implementationClass ,修改為groovy目錄下對(duì)應(yīng)的插件類(lèi)的包名+類(lèi)名,注意沒(méi)有文件后綴。

implementationClass = 'com.heiko.myplugin.MyPluginGroovy'

完整的build.gradle文件

plugins {id 'java-gradle-plugin'id 'groovy'id 'maven-publish'
}gradlePlugin {plugins {create("MyTestPlugin") {//插件idid = 'com.heiko.plugin.myplugin'//插件的包名+類(lèi)名implementationClass = 'com.heiko.myplugin.MyPluginGroovy'}}
}//設(shè)置group
group = 'com.heiko.group'
//設(shè)置版本號(hào)
version = "1.0.1"afterEvaluate {publishing {// 配置倉(cāng)庫(kù)地址repositories {maven {url = uri('../repo')}}}
}

5.5 重新發(fā)布插件

將版本號(hào)version改為1.0.1,雙擊publish,重新發(fā)布插件

5.6 依賴(lài)插件

修改項(xiàng)目根目錄下的build.gradle,將我們的com.heiko.plugin.myplugin插件版本號(hào)修改為1.0.1。
重新運(yùn)行項(xiàng)目,可以看到打印的插件日志變成了

這是我的第一個(gè)Groovy插件!

6. 使用Kotlin編寫(xiě)插件

除了使用JavaGroovy編寫(xiě)插件,我們還可以使用Kotlin來(lái)編寫(xiě)插件,使用kotlin對(duì)于Android開(kāi)發(fā)者來(lái)說(shuō)會(huì)更友好。

6.1 添加java插件

為了識(shí)別kotlin語(yǔ)言,我們需要在MyPlugin目錄下的build.gradle中添加kotlin插件

plugins {id 'java-gradle-plugin'//添加Kotlin插件id "org.jetbrains.kotlin.jvm"id 'maven-publish'
}

6.2 新建kotlin目錄

在和java同級(jí)別的目錄下,新建kotlin目錄,kotlin目錄下需要和原java目錄一樣

在這里插入圖片描述

6.3 新建MyPluginKotlin.kt

kotlin目錄下,要把MyPlugin.java改為MyPlugin.kt ,這里我為了方便區(qū)分,把名稱(chēng)改為了MyPluginKotlin.groovy 。

package com.heiko.mypluginimport org.gradle.api.Plugin
import org.gradle.api.Projectclass MyPluginKotlin : Plugin<Project> {override fun apply(project: Project) {println("這是我的第一個(gè)Kotlin插件!")}
}

6.4 修改implementationClass

修改MyPlugin目錄下的build.gradle文件中的implementationClass ,修改為groovy目錄下對(duì)應(yīng)的插件類(lèi)的包名+類(lèi)名,注意沒(méi)有文件后綴。

implementationClass = 'com.heiko.myplugin.MyPluginKotlin'

完整的build.gradle文件

plugins {id 'java-gradle-plugin'id "org.jetbrains.kotlin.jvm"id 'maven-publish'
}gradlePlugin {plugins {create("MyTestPlugin") {//插件idid = 'com.heiko.plugin.myplugin'//插件的包名+類(lèi)名implementationClass = 'com.heiko.myplugin.MyPluginKotlin'}}
}//設(shè)置group
group = 'com.heiko.group'
//設(shè)置版本號(hào)
version = "1.0.2"afterEvaluate {publishing {// 配置倉(cāng)庫(kù)地址repositories {maven {url = uri('../repo')}}}
}

6.5 重新發(fā)布插件

將版本號(hào)version改為1.0.2,雙擊publish,重新發(fā)布插件

6.6 依賴(lài)插件

修改項(xiàng)目根目錄下的build.gradle,將我們的com.heiko.plugin.myplugin插件版本號(hào)修改為1.0.2。
重新運(yùn)行項(xiàng)目,可以看到打印的插件日志變成了

這是我的第一個(gè)Kotlin插件!

7. Android Gradle系列文章

Android Gradle 開(kāi)發(fā)與應(yīng)用 (一) : Gradle基礎(chǔ)-氦客-CSDN博客
Android Gradle開(kāi)發(fā)與應(yīng)用 (二) : Groovy基礎(chǔ)語(yǔ)法-CSDN博客
Android Gradle開(kāi)發(fā)與應(yīng)用 (三) : Groovy語(yǔ)法概念與閉包-CSDN博客
Android Gradle開(kāi)發(fā)與應(yīng)用 (四) : Gradle構(gòu)建與生命周期-CSDN博客
Android Gradle開(kāi)發(fā)與應(yīng)用 (五): 基于Gradle 8.2,創(chuàng)建Gradle插件-CSDN博客
Android Gradle 開(kāi)發(fā)與應(yīng)用 (六) : 創(chuàng)建buildSrc插件和使用命令行創(chuàng)建Gradle插件-CSDN博客

8. 參考文章

Using Plugins (gradle.org)
Gradle用戶(hù)手冊(cè) - Gradle8.1.1中文文檔 - API參考文檔 - 全棧行動(dòng)派 (qzxdp.cn)
編寫(xiě) Gradle 插件 | Android Studio | Android Developers (google.cn)
Android Gradle8.0版本新建Gradle插件 - 掘金 (juejin.cn)
Gradle基礎(chǔ)到進(jìn)階 - yechaoa的專(zhuān)欄 - 掘金 (juejin.cn)
【Gradle-8】Gradle插件開(kāi)發(fā)指南 - 掘金 (juejin.cn)
【Gradle-9】Gradle插件發(fā)布指南 - 掘金 (juejin.cn)
Gradle自定義插件實(shí)踐與總結(jié) - 掘金 (juejin.cn)
創(chuàng)建Gradle插件記錄 - 掘金 (juejin.cn)

http://m.risenshineclean.com/news/64407.html

相關(guān)文章:

  • java網(wǎng)站開(kāi)發(fā)是干什么安徽網(wǎng)絡(luò)關(guān)鍵詞優(yōu)化
  • 工信局網(wǎng)站備案查詢(xún)溫州seo網(wǎng)站推廣
  • 中國(guó)企業(yè)網(wǎng)銀怎么轉(zhuǎn)賬seo推廣軟
  • 石家莊專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)電話(huà)搜狗競(jìng)價(jià)推廣效果怎么樣
  • 網(wǎng)站做下載功能網(wǎng)站代搭建維護(hù)
  • 滄州有沒(méi)有做網(wǎng)站的國(guó)外網(wǎng)站制作
  • 怎樣進(jìn)行站點(diǎn)優(yōu)化seo高端培訓(xùn)
  • 什么做網(wǎng)站做個(gè)多少錢(qián)啊排名優(yōu)化seo
  • wordpress用windows會(huì)慢寧波seo關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • 自己做的網(wǎng)站做登錄網(wǎng)店運(yùn)營(yíng)與推廣
  • 做競(jìng)彩網(wǎng)站代理犯法么站長(zhǎng)統(tǒng)計(jì)app軟件下載
  • 個(gè)人網(wǎng)站可以做企業(yè)宣傳個(gè)人如何做seo推廣
  • 吉林seo刷關(guān)鍵詞排名優(yōu)化進(jìn)一步優(yōu)化
  • 想做程序員需要學(xué)什么黑帽seo技術(shù)
  • 廈門(mén)建設(shè)局網(wǎng)站改到哪網(wǎng)站優(yōu)化軟件
  • 網(wǎng)站的服務(wù)器選擇seo品牌優(yōu)化百度資源網(wǎng)站推廣關(guān)鍵詞排名
  • ui設(shè)計(jì)技術(shù)培訓(xùn)學(xué)校手機(jī)管家一鍵優(yōu)化
  • 網(wǎng)站頁(yè)面建議seo優(yōu)化是什么職業(yè)
  • 做網(wǎng)站建設(shè)需要多少錢(qián)網(wǎng)絡(luò)營(yíng)銷(xiāo)模式
  • 優(yōu)質(zhì)網(wǎng)站的衡量標(biāo)準(zhǔn)本地網(wǎng)絡(luò)seo公司
  • 烏審旗建設(shè)局網(wǎng)站seo咨詢(xún)價(jià)格找推推蛙
  • 福州做網(wǎng)站長(zhǎng)沙seo排名扣費(fèi)
  • wordpress 論壇模版南京seo按天計(jì)費(fèi)
  • 如果在網(wǎng)站做推廣連接公司關(guān)鍵詞seo
  • 陜西省人民政府網(wǎng)百度推廣關(guān)鍵詞優(yōu)化
  • 全功能電子商務(wù)網(wǎng)站建設(shè)百度推廣關(guān)鍵詞怎么優(yōu)化
  • 蘭州網(wǎng)站開(kāi)發(fā)百度推廣優(yōu)化工具
  • 長(zhǎng)沙 php企業(yè)網(wǎng)站系統(tǒng)銷(xiāo)售方案怎么做
  • wordpress修改上傳大小限制合肥seo排名優(yōu)化公司
  • 沙元埔做網(wǎng)站的公司優(yōu)化大師有必要安裝嗎