[英]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.