我正在尝试将 Gradle 构建脚本的某些部分移动到可以在项目之间共享的外部配置文件。以下是Detekt插件的示例:
build.gradle.kts(仅压缩相关部分)
plugins{
id("io.gitlab.arturbosch.detekt").version("1.19.0-RC1")
}
...
detekt{
...
}
Run Code Online (Sandbox Code Playgroud)
构建.gradle.kts
apply(File("common.gradle.kts"))
Run Code Online (Sandbox Code Playgroud)
通用.gradle.kts
plugins {
id("io.gitlab.arturbosch.detekt").version("1.19.0-RC1")
}
detekt{
...
}
Run Code Online (Sandbox Code Playgroud)
但当我这样做时,我收到此错误:
<my_project>\common.gradle.kts:7:1: Unresolved reference: detekt
Run Code Online (Sandbox Code Playgroud)
所以该plugin部分似乎没有做任何事情。需要明确的是,该插件不需要节中的任何内容,只需声明即可dependencies在内部正常工作。build.gradle.ktsplugin
为什么这不起作用?
我将它与普通的 Groovy Gradle 脚本一起使用,如下所示:
# detekt.gradle
apply plugin: 'io.gitlab.arturbosch.detekt'
tasks.detekt.jvmTarget = "1.8"
detekt {
buildUponDefaultConfig = true
input = files("${rootProject.projectDir}/app/src")
config = files("${rootProject.projectDir}/detekt.yml")
reports {
html.enabled = true
xml.enabled = true
}
}
Run Code Online (Sandbox Code Playgroud)
# build.gradle
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath libs.android.gradle
classpath libs.kotlin.gradle
classpath libs.detekt
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
subprojects {
apply from: rootProject.file('detekt.gradle')
apply from: rootProject.file('ktlint.gradle')
apply from: rootProject.file('spotless.gradle')
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |