109 lines
3.6 KiB
Groovy
109 lines
3.6 KiB
Groovy
def getServerProjectSources
|
|
def getAndroidProjectSources
|
|
|
|
apply from: "${rootDir}/libraries/BuildScripts/gradle/commonStaticAnalysis.gradle"
|
|
|
|
gradle.projectsEvaluated {
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs <<
|
|
"-Xlint:cast" <<
|
|
"-Xlint:divzero" <<
|
|
"-Xlint:empty" <<
|
|
"-Xlint:deprecation" <<
|
|
"-Xlint:finally" <<
|
|
"-Xlint:overrides" <<
|
|
"-Xlint:path" <<
|
|
"-Werror"
|
|
}
|
|
|
|
def excludes = rootProject.extensions.findByName("staticAnalysisExcludes")
|
|
|
|
def androidStaticAnalysisTasks = getStaticAnalysisTaskNames(true, getAndroidProjectSources(excludes))
|
|
def androidIdeaFormatTask = getIdeaFormatTask(true, getAndroidProjectSources(excludes))
|
|
task staticAnalysis {
|
|
androidStaticAnalysisTasks.each { task ->
|
|
tasks.findByName(task).mustRunAfter(androidIdeaFormatTask)
|
|
}
|
|
dependsOn androidIdeaFormatTask
|
|
dependsOn androidStaticAnalysisTasks
|
|
doFirst {
|
|
generateReport(true)
|
|
}
|
|
}
|
|
|
|
task staticAnalysisWithoutFormatting {
|
|
dependsOn androidStaticAnalysisTasks
|
|
doFirst {
|
|
generateReport(true)
|
|
}
|
|
}
|
|
|
|
def serverStaticAnalysisTasks = getStaticAnalysisTaskNames(false, getServerProjectSources(excludes))
|
|
def serverIdeaFormatTask = getIdeaFormatTask(false, getServerProjectSources(excludes))
|
|
task serverStaticAnalysis {
|
|
serverStaticAnalysisTasks.each { task ->
|
|
tasks.findByName(task).mustRunAfter(serverIdeaFormatTask)
|
|
}
|
|
dependsOn serverIdeaFormatTask
|
|
dependsOn serverStaticAnalysisTasks
|
|
doFirst {
|
|
generateReport(false)
|
|
}
|
|
}
|
|
|
|
task serverStaticAnalysisWithoutFormatting {
|
|
dependsOn serverStaticAnalysisTasks
|
|
doFirst {
|
|
generateReport(false)
|
|
}
|
|
}
|
|
}
|
|
|
|
getServerProjectSources = { excludes ->
|
|
def sources = new ArrayList<String>()
|
|
def sourcesDirectory = new File(project.projectDir.path, 'src')
|
|
|
|
for (def sourceFlavorDirectory : sourcesDirectory.listFiles()) {
|
|
def javaSourceDirectory = new File(sourceFlavorDirectory.path, 'java')
|
|
def kotlinSourceDirectory = new File(sourceFlavorDirectory.path, 'kotlin')
|
|
|
|
if (javaSourceDirectory.exists() && javaSourceDirectory.isDirectory()) {
|
|
sources.add(javaSourceDirectory.absolutePath)
|
|
}
|
|
if (kotlinSourceDirectory.exists() && kotlinSourceDirectory.isDirectory()) {
|
|
sources.add(kotlinSourceDirectory.absolutePath)
|
|
}
|
|
}
|
|
return sources
|
|
}
|
|
|
|
getAndroidProjectSources = { excludes ->
|
|
def sources = new ArrayList<String>()
|
|
for (def project : rootProject.subprojects) {
|
|
if (!project.subprojects.isEmpty() || (excludes != null && excludes.contains(project.path))) {
|
|
continue
|
|
}
|
|
|
|
def sourcesDirectory = new File(project.projectDir.path, 'src')
|
|
if (!sourcesDirectory.exists() || !sourcesDirectory.isDirectory()) {
|
|
continue
|
|
}
|
|
|
|
for (def sourceFlavorDirectory : sourcesDirectory.listFiles()) {
|
|
def javaSourceDirectory = new File(sourceFlavorDirectory.path, 'java')
|
|
def kotlinSourceDirectory = new File(sourceFlavorDirectory.path, 'kotlin')
|
|
|
|
if (javaSourceDirectory.exists() && javaSourceDirectory.isDirectory()) {
|
|
sources.add(javaSourceDirectory.absolutePath)
|
|
}
|
|
if (kotlinSourceDirectory.exists() && kotlinSourceDirectory.isDirectory()) {
|
|
sources.add(kotlinSourceDirectory.absolutePath)
|
|
}
|
|
}
|
|
}
|
|
return sources
|
|
}
|
|
|
|
|