国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kotlin版本實(shí)現(xiàn)Gradle插件

這篇具有很好參考價(jià)值的文章主要介紹了Kotlin版本實(shí)現(xiàn)Gradle插件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Kotlin版本實(shí)現(xiàn)Gradle插件

本文鏈接:https://blog.csdn.net/feather_wch/article/details/131746478文章來源地址http://www.zghlxwxcb.cn/news/detail-572276.html

  • 創(chuàng)建一個(gè)Gradle項(xiàng)目,并選擇Kotlin/JVM作為項(xiàng)目SDK。假設(shè)項(xiàng)目的名稱為hello-plugin。
  • 在項(xiàng)目中創(chuàng)建一個(gè)新的源集,比如plugin,用于存放插件的源代碼和資源。在src目錄下創(chuàng)建一個(gè)plugin目錄,并在其中創(chuàng)建一個(gè)kotlin目錄和一個(gè)resources目錄。
  • 在plugin源集中創(chuàng)建一個(gè)實(shí)現(xiàn)了Plugin接口的類,比如HelloPlugin。在src/plugin/kotlin/com/example目錄下創(chuàng)建一個(gè)HelloPlugin.kt文件,內(nèi)容如下:
package com.example

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.Exec

// 實(shí)現(xiàn)Plugin接口
class HelloPlugin : Plugin<Project> {

    // 重寫apply方法
    override fun apply(project: Project) {
        // 在項(xiàng)目中添加一個(gè)hello任務(wù),用于打印一句問候語
        project.tasks.register("hello", Exec::class.java) {
            it.commandLine("echo", "Hello from plugin!")
        }
    }
}
  • 在plugin源集中創(chuàng)建一個(gè)resources/META-INF/gradle-plugins目錄,用于存放插件的屬性文件。在該目錄下創(chuàng)建一個(gè)hello.properties文件,內(nèi)容如下:
# 指定插件類的全限定名
implementation-class=com.example.HelloPlugin
  • 在項(xiàng)目根目錄下創(chuàng)建一個(gè)settings.gradle.kts文件,用于配置項(xiàng)目名稱和版本號(hào)。內(nèi)容如下:
// 配置項(xiàng)目名稱
rootProject.name = "hello-plugin"
// 配置項(xiàng)目版本號(hào)
rootProject.version = "1.0.0"
  • 在項(xiàng)目根目錄下創(chuàng)建一個(gè)build.gradle.kts文件,用于配置項(xiàng)目的構(gòu)建邏輯。在這里,你需要添加一些依賴項(xiàng),比如gradleApi()和kotlin(“stdlib”),以及一些任務(wù),比如jar和publishToMavenLocal。內(nèi)容如下:
plugins {
    // 應(yīng)用java插件
    java
    // 應(yīng)用kotlin插件
    kotlin("jvm") version "1.6.0"
    // 應(yīng)用maven-publish插件
    `maven-publish`
}

// 配置源集
sourceSets {
    // 獲取plugin源集
    val plugin by getting {
        // 設(shè)置編譯輸出目錄
        output.setClassesDirs(files("$buildDir/classes/plugin"))
        // 設(shè)置資源輸出目錄
        output.setResourcesDir("$buildDir/resources/plugin")
        // 設(shè)置編譯輸入目錄
        java.srcDir("src/plugin/kotlin")
        // 設(shè)置資源輸入目錄
        resources.srcDir("src/plugin/resources")
    }
}

// 配置依賴項(xiàng)
dependencies {
    // 添加gradleApi依賴項(xiàng),用于訪問Gradle API
    implementation(gradleApi())
    // 添加kotlin標(biāo)準(zhǔn)庫(kù)依賴項(xiàng),用于編譯Kotlin代碼
    implementation(kotlin("stdlib"))
}

// 配置jar任務(wù),用于打包插件類和資源為jar文件
tasks.jar {
    // 設(shè)置jar文件名為項(xiàng)目名稱-版本號(hào).jar,比如hello-plugin-1.0.0.jar
    archiveFileName.set("${project.name}-${project.version}.jar")
    // 設(shè)置jar文件所在目錄為build/libs目錄
    destinationDirectory.set(file("$buildDir/libs"))
    // 從plugin源集中獲取類和資源,并添加到j(luò)ar文件中
    from(sourceSets["plugin"].output)
}

// 配置publishing擴(kuò)展,用于發(fā)布插件到Maven倉(cāng)庫(kù)
publishing {
    // 配置發(fā)布到本地Maven倉(cāng)庫(kù)的方式
    repositories {
        mavenLocal()
    }
    // 配置發(fā)布的內(nèi)容
    publications {
        // 創(chuàng)建一個(gè)MavenPublication類型的publication,并命名為pluginJar
        create<MavenPublication>("pluginJar") {
            // 設(shè)置groupId為com.example
            groupId = "com.example"
            // 設(shè)置artifactId為項(xiàng)目名稱
            artifactId = project.name
            // 設(shè)置version為項(xiàng)目版本號(hào)
            version = project.version.toString()
            // 設(shè)置發(fā)布的artifact為jar任務(wù)生成的jar文件
            artifact(tasks.jar)
        }
    }
}
  • 在IDE中運(yùn)行publishToMavenLocal任務(wù),將插件打包成jar文件,并發(fā)布到本地Maven倉(cāng)庫(kù)。你可以在~/.m2/repository/com/example/hello-plugin/1.0.0目錄下找到發(fā)布的文件,包括hello-plugin-1.0.0.jar和hello-plugin-1.0.0.pom。
  • 在另一個(gè)Gradle項(xiàng)目中,你可以使用plugins塊來應(yīng)用你開發(fā)的插件,比如plugins { id(“hello”) version “1.0.0” }。這樣就可以使用插件提供的功能了,比如運(yùn)行hello任務(wù),打印一句問候語。

到了這里,關(guān)于Kotlin版本實(shí)現(xiàn)Gradle插件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android Studio版本升級(jí)后的問題 gradle降級(jí)、jdk升級(jí) Compose 與 Kotlin 的兼容性對(duì)應(yīng)關(guān)系

    Android Studio版本升級(jí)后的問題 gradle降級(jí)、jdk升級(jí) Compose 與 Kotlin 的兼容性對(duì)應(yīng)關(guān)系

    AGPBI: {“kind”:“error”,“text”:“Can’t determine type for tag ‘macro name=“m3_comp_switch_disabled_selected_handle_color”?attr/colorSurface’”,“sources”:[{“file”:“/Users/fausto/.gradle/caches/transforms-3/4948d05d0ff6027d2e3c9f4a6010103b/transformed/material-1.7.0-alpha02/res/values/values.xml”}],“tool”:“Resource and

    2024年02月04日
    瀏覽(164)
  • springboot gradle kotlin 多模塊(或微服務(wù))統(tǒng)一依賴及版本管理和構(gòu)建不同環(huán)境打包task,docker鏡像構(gòu)建task

    springboot gradle kotlin 多模塊(或微服務(wù))統(tǒng)一依賴及版本管理和構(gòu)建不同環(huán)境打包task,docker鏡像構(gòu)建task

    在maven里可以在pom.xml中統(tǒng)一定義項(xiàng)目依賴,依賴版本,插件,多環(huán)境構(gòu)建,子模塊;定義packaging 為pom類型,各子模塊按需引入,并且指定環(huán)境profiles構(gòu)建。 在gradle中也可以實(shí)現(xiàn)依賴統(tǒng)一管理,各模塊按需引入,區(qū)分環(huán)境的構(gòu)建任務(wù)。 先上效果圖 統(tǒng)一定義依賴,依賴版本,插

    2024年02月04日
    瀏覽(66)
  • Kotlin中的Gradle

    Kotlin中的Gradle

    1.創(chuàng)建 左上角【File】-【New Project】-【Project】,出現(xiàn)以下畫面,如下勾選 在配置Gradle時(shí),需要連接網(wǎng)絡(luò)下載資源,不然會(huì)出現(xiàn)配置失敗的情況。 若在構(gòu)建完畢后,左側(cè)的路徑中沒有出現(xiàn)src包,可以在build.gradle文件中最外部添加如下內(nèi)容(對(duì)應(yīng)的是5.X版本的Gradle): 點(diǎn)擊右側(cè)

    2024年02月04日
    瀏覽(18)
  • Android開發(fā)中Gradle插件,Gradle版本與JDK版本之間的對(duì)應(yīng)關(guān)系

    Gradle插件 Gradle版本 SDK Build Tools JDK版本 說明 8.2 8.1 17 8.1 8.0 17 8.0 8.0 30.0.3 17 7.4 7.5 30.0.3 11 7.3 7.4 30.0.3 11 7.2 7.3.3 30.0.3 11 7.1 7.2 30.3.30 11 4.2.0+ 6.7.1 30.0.2 8+ 4.1.0+ 6.5+ 29.0.2 8+ 4.0.0+ 6.1.1+ 29.0.2 8+ 3.6.0~3.6.4 5.6.4+ 28.0.3 8+ 3.5.0 - 3.5.4 5.4.1+ 28.0.3 8+ 3.4.0 - 3.4.3 5.1.1+ 28.0.3 8+ 3.3.0 - 3.3.3 4.10.1+ 28.0

    2024年03月20日
    瀏覽(28)
  • Gradle Kotlin DSL 打包帶上依賴

    Gradle version Gradle 8.2.1 build.gradle.kts 參考 https://blog.csdn.net/setlilei/article/details/123173339

    2024年02月15日
    瀏覽(17)
  • android中g(shù)radle的kotlin編譯配置選項(xiàng)

    1、Android中的配置 使用如下方式開啟在Android中的gradle的kotlin編譯配置: 該配置在其余平臺(tái)不可用 以上配置會(huì)開啟Kotlin/JVM 的上下文接收者原型功能,否則該功能不可用,開啟后編碼可以使用以下代碼: 傳遞參數(shù)的發(fā)過誓可以直接在里面寫 setFreeCompilerArgs([\\\"-opt-in=org.mylibrary.

    2024年02月07日
    瀏覽(20)
  • Android使用Gradle kotlin dsl 優(yōu)雅配置構(gòu)建項(xiàng)目

    Android使用Gradle kotlin dsl 優(yōu)雅配置構(gòu)建項(xiàng)目

    Gradle的出現(xiàn)可以說是為Android的項(xiàng)目構(gòu)建插上了翅膀,讓Android的apk打包構(gòu)建更簡(jiǎn)單高效。開發(fā)者可以自己去定義打包的過程,比如在打包的過程中進(jìn)行字節(jié)碼插樁,多渠道打包,在老版本的Android中還可以依賴Gradle實(shí)現(xiàn)APP的插件化開發(fā)。但是Gradle是使用Groovy語言開發(fā)的,雖然說

    2024年02月13日
    瀏覽(19)
  • Kotlin Plugin Version 和 Gradle Version 不匹配

    Kotlin Plugin Version 和 Gradle Version 不匹配

    有些時(shí)候,尤其是打開別人的Kotlin項(xiàng)目時(shí), Android Studio 會(huì)報(bào)錯(cuò): otlin: The project is using an incompatible preview version (AGP XXX) of the Android Gradle plugin. Current compatible version is AGP XXX. 。這個(gè)問題其實(shí)是 Plugin version 和 Gradle version不匹配。 我們嘗試了下面的方法,可以解決此問題: 首先,

    2024年02月12日
    瀏覽(24)
  • Compose的gradle配置以及與Kotlin的兼容對(duì)應(yīng)

    要開始使用Compose,需要先向項(xiàng)目中添加一些 build 配置。 將以下定義添加到應(yīng)用的build.gradle.kts文件中: 此外,請(qǐng)將以下部分中您需要的Compose BoM和Compose庫(kù)依賴項(xiàng)的子集添加到您的依賴項(xiàng): 以下是Compose 與 Kotlin 的兼容性對(duì)應(yīng)關(guān)系: Compose Compiler 版本 兼容的 Kotlin 版本 1.5.9 1

    2024年02月21日
    瀏覽(17)
  • 解決Could not find org.jetbrains.kotlin:kotlin-gradle-plugin * 錯(cuò)誤方法

    出現(xiàn)該錯(cuò)誤的主要原因是當(dāng)前倉(cāng)庫(kù)中沒有適合的包,添加國(guó)內(nèi)的maven源即可,具體方法如下: 在 Gradle Scripts-build.gradle 中添加以下國(guó)內(nèi)鏡像倉(cāng)庫(kù),注意兩個(gè)地方都要加: 全部代碼:

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包