gradle - 仅在没有检查任务的情况下运行 Detekt 任务才会失败
问题描述
我正在将 detekt 从 1.0.0.RC7-2 迁移到 1.0.1 并更改为使用新的插件语法。我设法使它工作,但只有在执行完整检查任务时。
如果只执行 detekt 任务,则会显示错误。
detekt 任务失败并出现以下错误:
Task :detekt FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':detekt'.
Could not resolve all files for configuration ':detekt'.
Cannot resolve external dependency io.gitlab.arturbosch.detekt:detekt-cli:1.0.1 because no repositories are defined.
Required by:
project :
detekt.gradle
apply plugin: 'io.gitlab.arturbosch.detekt'
detekt {
config = files("$rootDir/detekt/detekt-ruleset.yml")
filters = ".*build.*,.*/resources/.*,.*/tmp/.*"
input = files("src/main/java", "src/test/java")
reports {
html.enabled = true
xml.enabled = false
txt.enabled = false
}
}
build.gradle(项目):
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.1"
}
}
plugins {
id "io.gitlab.arturbosch.detekt" version "1.0.1"
}
build.gradle(模块):
repositories {
jcenter()
google()
}
apply from: "$rootDir/detekt/detekt.gradle"
解决方案
我设法通过为 Detekt 创建任务而不使用插件来使其工作:
detekt.gradle
configurations {
detekt
}
dependencies {
detekt "io.gitlab.arturbosch.detekt:detekt-cli:1.0.1"
}
task detekt(type: JavaExec) {
main = "io.gitlab.arturbosch.detekt.cli.Main"
classpath = configurations.detekt
def input = "$rootDir"
def config = "$rootDir/detekt/detekt-ruleset.yml"
def exclude = ".*/resources/.*,.*/build/.*"
def report = "html:${project.buildDir}/reports/detekt.html"
def params = ['-i', input, '-c', config, '-ex', exclude, '-r', report]
args(params)
}
check.dependsOn detekt
build.gradle(项目)
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.1"
}
}
推荐阅读
- neo4j - 密码从结果中删除 null s
- r - R中的面板回归问题
- python - 无法解决错误 TypeError: unhashable type: 'list' in pandas
- hex - 获取正确值的问题(字节,字)
- python - 使用 Plotly Express 的财务图表不会在 PyCharm 内部运行
- watchkit - 如何从 Apple Watch 上的其他应用打开 Apple 的默认应用?
- node.js - 当我尝试在 nodejs 中使用 twilio 从前端发送短信时出现这些错误
- javascript - 将默认道具的类型定义添加到组件的所有子项
- css - 如何选择与另一个页面具有相同类别的多个图像
- oracle - 在 Oracle APEX 中单击按钮后显示弹出表单