Android hodgepodge static code quality check tool gradle plugin . (q>οΉ<q)
dependencies {
com.camnter.gradle.plugin:static-analysis-plugin:1.0.6
}
apply plugin: 'com.camnter.gradle.plugin.static.analysis'
You can do without any configuration. Plugin automatically generates a set of rules. You can find the automatically generated rules file .
${project.buildDir}/android-static-analysis/default-rules
Just add the dependency configuration to the module you want to apply.
apply plugin: 'com.camnter.gradle.plugin.static.analysis'
Full default configuration:
androidStaticAnalysis {
// eg: true or false
debugAnalysis = false
// eg: true or false
releaseAnalysis = true
pmd {
// eg: true or false
enable = true
// eg: "6.2.0"
toolVersion = "6.2.0"
// eg: true or false
ignoreFailures = true
// eg: ["${project.project.rootDir}/a.xml", "${project.project.rootDir}/b.xml"]
ruleSets = []
// eg: "${project.project.rootDir}/c.xml"
ruleSetFiles = "${project.buildDir}/android-static-analysis/default-rules/pmd-ruleset.xml"
}
lint {
// eg: true or false
enable = true
// eg: "${project.project.rootDir}/d.xml"
lintConfig = "${project.buildDir}/android-static-analysis/default-rules/lint.xml"
}
findBugs {
// eg: true or false
enable = true
// eg: "3.0.1"
toolVersion = "3.0.1"
// eg: true or false
ignoreFailures = true
// "min", "default", "max"
effort = "max"
// eg: "${project.project.rootDir}/e.xml"
excludeFilter =
"${project.buildDir}/android-static-analysis/default-rules/findbugs-filter.xml"
// eg: "low", "medium", "high"
reportLevel = "high"
}
checkstyle {
// eg: true or false
enable = true
// eg: "8.8"
toolVersion = "8.8"
// eg: true or false
ignoreFailures = true
// eg: "${project.project.rootDir}/f.xml"
configDir = "${project.buildDir}/android-static-analysis/default-rules/checkstyle.xml"
// eg: 0 - Integer.MAX_VALUE
maxErrors = 30
// eg: 0 - Integer.MAX_VALUE
maxWarnings = 2147483647
// eg: "${project.project.rootDir}/h.xml"
suppressionsPath = "${project.buildDir}/android-static-analysis/default-rules/checkstyle-suppressions.xml"
}
}
gradle check
If you open the configuration
androidStaticAnalysis {
debugAnalysis = true
releaseAnalysis = true
}
Run the following command will also be executed
gradle assembleDebug
gradle assembleRelease
androidStaticAnalysis {
email{
// whether to send email automatically, default is false
// eg: true or false
send = true
// sender nickname
nickname = 'CaMnter'
// email theme
theme = 'Android static analysis'
// email content
// failure when enclosureType = 'html'
// valid when enclosureType = 'zip'
content = 'Android static analysis'
// the recipient, many separated by ;
// eg: '[email protected];[email protected]'
receivers = '[email protected]'
// cc, many people separated by ;
// eg: '[email protected];[email protected]'
carbonCopy = '[email protected]'
// Analyze content, html format or zip format, default html format
// eg: html or zip
enclosureType = 'html'
}
}
This is only part of.
Complete the following configuration within local.properties
asap.smtpHost=company stmp server address
asap.smtpUser=company email
asap.smtpPassword=company email password
1. Open "Forwarding and POP/IMAP" in gmail settings page.
2. Check on "Enable IMAP".
3. Open Two-step verification.
4. Create gmail app password.
Gmail app password as gmail stmp password.
asap.smtpHost=smtp.gmail.com
asap.smtpUser=gmail
asap.smtpPassword=gmail app password
1. QQ mailbox setting pageοΌOpen "POP3/SMTP Service".
2. Generate an authorization code.
Authorization code as QQ mailbox stmp password.
asap.smtpHost=smtp.qq.com
asap.smtpUser=qq email
asap.smtpPassword=authorization code
1. NetEase Mailbox Settings page, open "POP3/SMTP Service".
2. Set Client Authorization Password.
Client Authorization Password as the stmp password for NetEase Mailbox.
asap.smtpHost=smtp.163.com
asap.smtpUser=NetEase mailbox
asap.smtpPassword=Client Authorization Password
Sina Mailbox Settings page, open "POP3/SMTP Service".
asap.smtpHost=smtp.sina.com
asap.smtpUser=sina mailbox
asap.smtpPassword=sina mailbox password
Copyright (C) 2018 CaMnter [email protected]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.