我使用复合构建来管理我的插件。在同一个复合构建中,我有如下所示的DetektConventionPlugin
插件,我希望使用以下模式应用它:apply<DetektConventionPlugin>()
。然而,这不适用于复合构建,但适用于buildSrc,但我不希望继续使用buildSrc。
class DetektConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
val detektVersion = libs.findVersion("detekt").get().toString()
pluginManager.apply("io.gitlab.arturbosch.detekt")
extensions.getByType<DetektExtension>().apply {
toolVersion = detektVersion
source = files("$rootDir/")
parallel = true
config = files("$rootDir/config/detekt/detekt-config.yml")
buildUponDefaultConfig = true
allRules = false
baseline = file("$rootDir/config/detekt/detekt-baseline.xml")
// dependencies {
// "detektPlugins"(libs.findLibrary("detekt-formatting").get())
// }a
}
tasks.named<Detekt>("detekt").configure {
description = "Runs Detekt on the whole project at once."
reports {
html.required.set(true)
html.outputLocation.set(
file("$rootDir/build/reports/detekt.html"),
)
}
parallel = true
setSource(projectDir)
include("**/*.kt", "**/*.kts")
exclude("**/resources/**", "**/build/**")
// exclude other custom generated files
}
dependencies {
detekt("io.gitlab.arturbosch.detekt:detekt-cli:$detektVersion")
}
}
}
}
字符串
我不知道我在这里做错了什么。看起来buildSrc处理插件的方式不同。
1条答案
按热度按时间wz1wpwve1#
杰里·奥卡福
希望你一切都好!我也希望这对你有帮助!
您必须在Gradle上注册您的插件。
在这个例子中,我使用了KotlinDSL。
字符串
比你可以调用你的插件的ID在任何文件
型
我有一个项目,我在我的Github中使用KotlinDSL的插件。
*项目=https://github.com/tavieto/movie-library-android
*插件目录= https://github.com/tavieto/movie-library-android/blob/main/build-logic/convention/src/main/java/AndroidJetpackCompose.kt
*插件注册= https://github.com/tavieto/movie-library-android/blob/main/build-logic/convention/build.gradle.kts
*插件使用率= https://github.com/tavieto/movie-library-android/blob/main/feature/main/build.gradle.kts