簡體   English   中英

編寫 gradle 需要二進制插件版本的社區插件

[英]Compose gradle community plugins requiring a version in a binary plugin

我正在編寫一個二進制插件,將其作為工件推送到遠程存儲庫以供重復使用。 我想用這個插件完成的一件事是組成一組應該始終存在的附加插件。 在編寫官方 gradle 插件時,如 java 插件,效果很好。 但是我找不到編寫社區插件的策略,該插件需要一個在 build.gradle.kts 文件中使用此語法的版本:

  plugins {
    id("com.diffplug.spotless") version "6.1.0"
}

我在 gradle 插件庫中發現的所有 API 都沒有提及指定版本,這讓我覺得我需要在其他地方配置它,比如構建如何在 settings.gradle 的pluginManagement塊中指定默認值。

這是我嘗試應用此方法的精簡版本。

import org.gradle.api.Plugin
import org.gradle.api.Project

class MyPlugin : Plugin<Project> {
    override fun apply(target: Project) {
        // This works OK
        target.plugins.apply("java")

        // This is a community plugin, so it requires a version be set and fails
        target.plugins.apply("com.diffplug.spotless")
    }
}

有沒有我缺少的 API? 或者我是從錯誤的方向接近這個?

通過在評論中遵循 aSemy 的建議解決了這個問題。 在將它添加到我的插件的類路徑之后,我停止嘗試通過 ID 聲明社區插件並切換到應用插件的 class。

build.gradle.kts

dependencies {
    api("com.diffplug.spotless:spotless-plugin-gradle:6.3.0")
}

插件 class:

import com.diffplug.gradle.spotless.SpotlessPlugin
import org.gradle.api.Plugin
import org.gradle.api.Project

class MyPlugin : Plugin<Project> {
    override fun apply(target: Project) {
        target.plugins.apply("java")
        target.plugins.apply(SpotlessPlugin::class.java)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM