我正在使用Jenkins管道和Gradle构建一个Android应用程序 .
我想对代码运行Lint测试,因此用于此事的命令是:
./gradlew lintStagingDebug
由于某种原因,此Gradle任务不会创建报告 .
我知道如果我像这样运行lint:
lint <project_dir> --xml xml_dest_path
它会创建报告 .
但是因为在整个管道中我使用gradlew来运行相关任务(清理,lint,编译,单元测试,汇编)我也想使用gradlew执行此任务但是我不知道如何告诉Gradle导出lint报告 .
我尝试过的另一件事是编辑 project/build.gradle
文件并更改此部分:
lintOptions {
abortOnError false
}
到(根据Lint official documentation)
lintOptions {
abortOnError false
xmlOutput projectDir/lint-results.xml
}
但后来我收到一个错误:
A problem occurred evaluating project ':App01'.
> No signature of method: java.io.File.div() is applicable for argument types: (com.android.build.gradle.tasks.Lint_Decorated) values: [task ':App01:lint']
谁知道怎么做?
2 回答
这是我解决它的方式 .
Explanation:
为了继续使用gradlew对代码运行lint测试,我已经定义了一个输出文件,并在gradlew命令结束时使用Linux命令“tee”将stdOut和stdErr重定向到此输出文件 .
您可以通过以下方式在Gradle中提供XML报告输出文件:
xmlOutput方法需要文件类型参数 . 我在参数中使用了相对路径 . 您也可以将它与projectDir一起使用 .