精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Gradle自定義插件介紹1

jf_78858299 ? 來源:小余的自習室 ? 作者:小余的自習室 ? 2023-03-30 11:17 ? 次閱讀

前言

前面幾篇文章筆者對Gradle的一些基礎認知,groovy基礎語法,以及Gradle 項目中常用的一些api進行了講解。

今天筆者再來講解一些關于Gradle插件的使用

1.定義

首先來講下GradleGradle插件有啥區別?

Gradle是一套構建工具,其內部構建過程主要是以Project組成一個樹形的生態系統,整個構建流程有自己的生命周期。每個Project又是由若干個Task組成。

Gradle插件你可以理解為是運行在Gradle這套構建系統上的單個task,

執行腳本的編寫字節碼插莊等,都可以依靠Gradle插件實現。

我們常用的Android Gradle Plugin也是一個Gradle插件模塊:

應用插件的ID:‘com.android.application’
或者lib庫:‘com.android.library’

2.有哪些優勢

  • 1.邏輯復用 :Gradle插件將一個公共模塊單獨的抽離出來,然后上傳到共享平臺,供其他項目使用
  • 2.插件配置擴展 :Gradle插件聲明插件擴展,將插件內部參數暴露給對應的Project進行配置,大大提高了插件的可擴展性。

3.插件的形式

    1. build script :直接在build.gradle構建腳本中創建對應的插件,這種方式只對當前Project有效,不支持對外提供調用,無復用性,一般不推薦使用
    1. buildSrc模塊 :這種方式是編譯器提供的特殊模塊,編譯器可以自動識別該模塊的,對所有的Project可見。但是在項目外不可見,無法給其他工程使用,復用性差。
    1. 獨立插件項目 :替插件創建一個單獨的項目,這個項目可以單獨的打包成一個jar包,然后發布到企業服務器上供其他項目使用,通常這個插件中包含了一個或多個任務的組合,實現具體的插件功能

4.自定義插件實戰

下面我會以第三種形式來大家實現一個簡單的Gradle插件功能:

需求如下:

在編譯過程中實現:將當前編譯的版本信息發布到公司服務器上,可以在本地服務器上實時查看編譯的版本日志,通過日志的分析可以對當前編譯版本進行優化。

步驟如下

  • 1.初始化插件模塊目錄結構
  • 2.創建插件實現類
  • 3.創建插件擴展Bean
  • 4.創建插件實現的任務:上傳版本信息
  • 5.將插件擴展和插件任務集成到Project生命周期中
  • 6.插件發布
  • 7.插件引入

步驟1.初始化插件模塊目錄結構

首先創建一個Java or Kotlin Library的模塊,

圖片

步驟1創建.png

在創建的模塊build.gradle中引入:

plugins {
    id 'groovy' // Groovy Language
    //id 'org.jetbrains.kotlin.jvm' // Kotlin 
    id 'java-gradle-plugin' // Java Gradle Plugin
}
  • groovy :使用groovy語言開發
  • org.jetbrains.kotlin.jvm :使用kotlin開發引入kotlin核心插件庫
  • java-gradle-plugin :Gradle插件的一個輔助插件,可以在我們build目錄下自動生成資源屬性

設置sourceSets

sourceSets {
    main {
        groovy {
            srcDir 'src/main/groovy'
        }
        resources {
            srcDir 'src/main/resources'
        }
    }
}

工程目錄結構如下:

圖片

插件目錄結構.png

步驟2.創建插件實現類

class UploadVersionPlugin implements Plugin<Project>{
    @Override
    void apply(Project project) {
            println "begin:now this is a ${project.name} 's upload plugin"
    }
}

步驟3.創建插件擴展Bean

class VersionInfo {
    //版本名稱
    String versionName
    //版本代碼
    int versionCode
    //版本更新信息
    String versionUpdateInfo
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • project
    +關注

    關注

    0

    文章

    35

    瀏覽量

    13279
  • 插件
    +關注

    關注

    0

    文章

    323

    瀏覽量

    22414
  • gradle
    +關注

    關注

    0

    文章

    26

    瀏覽量

    703
收藏 人收藏

    評論

    相關推薦

    自定義函數測試學習工程

    自定義函數測試學習工程
    發表于 07-01 16:37 ?5次下載

    1602自定義字符

    1602液晶能夠顯示自定義字符,能夠根據讀者的具體情況顯示自定義字符。
    發表于 01-20 15:43 ?1次下載

    PDH網管盤 自定義字節

    PDH網管盤 自定義字節
    發表于 12-26 22:13 ?0次下載

    如何在LabVIEW中實現自定義控件

    本文檔的主要內容詳細介紹的是如何在LabVIEW中實現自定義控件。
    發表于 01-14 17:17 ?48次下載
    如何在LabVIEW中實現<b class='flag-5'>自定義</b>控件

    占位面積很小的自定義進度指示器progressbutton

    概述 1、描述:progressbutton是占位面積很小的自定義進度指示器。默認實現提供了一個pin進度按鈕。 2、實現功能: a.自定義圓形進度條。 b.實現根據Slider滑動更新自定義
    發表于 03-18 14:45 ?3次下載

    OpenHarmony自定義組件CircleProgress

    組件介紹 本示例是OpenHarmony自定義組件CircleProgress。 用于定義一個帶文字的圓形進度條。 調用方法
    發表于 03-23 14:06 ?4次下載
    OpenHarmony<b class='flag-5'>自定義</b>組件CircleProgress

    自定義進度指示器progressbutton

    概述 1、描述:progressbutton是占位面積很小的自定義進度指示器。默認實現提供了一個pin進度按鈕。 2、實現功能:a.自定義圓形進度條。 b.實現根據Slider滑動更新自定義
    發表于 03-24 14:26 ?1次下載

    基于openharmony適配移植的自定義文本視圖

    項目介紹 項目名稱: ReadMoreTextView 所屬系列: openharmony的第三方組件適配移植 功能: 帶有修剪文本的自定義文本視圖 項目移植狀態: 給特定文字設置點擊事件功能未實現
    發表于 03-28 11:03 ?1次下載

    自定義視圖組件教程案例

    自定義組件 1.自定義組件-particles(粒子效果) 2.自定義組件- pulse(脈沖button效果) 3.自定義組件-progr
    發表于 04-08 10:48 ?14次下載

    ArkUI如何自定義彈窗(eTS)

    自定義彈窗其實也是比較簡單的,通過CustomDialogController類就可以顯示自定義彈窗。
    的頭像 發表于 08-31 08:24 ?2134次閱讀

    Gradle自定義插件介紹2

    首先來講下`Gradle`和`Gradle插件`有啥區別? > `Gradle`是一套構建工具,其內部構建過程主要是以`Project`組成一個樹形的生態系統,整個構建流程有自己
    的頭像 發表于 03-30 11:17 ?873次閱讀
    <b class='flag-5'>Gradle</b><b class='flag-5'>自定義</b><b class='flag-5'>插件</b><b class='flag-5'>介紹</b>2

    labview自定義控件

    labview自定義精美控件
    發表于 05-15 16:46 ?17次下載

    自定義算子開發

    一個完整的自定義算子應用過程包括注冊算子、算子實現、含自定義算子模型轉換和運行含自定義op模型四個階段。在大多數情況下,您的模型應該可以通過使用hb_mapper工具完成轉換并順利部署到地平線芯片上……
    的頭像 發表于 04-07 16:11 ?2750次閱讀
    <b class='flag-5'>自定義</b>算子開發

    labview超快自定義控件制作和普通自定義控件制作

    labview超快自定義控件制作和普通自定義控件制作
    發表于 08-21 10:32 ?12次下載

    鴻蒙ArkUI實例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發框架自帶系統組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節筆者簡單介紹一下
    的頭像 發表于 04-08 10:17 ?604次閱讀