Skip to content

πŸ–‡ Android hodgepodge static code quality check tool gradle plugin.

License

Notifications You must be signed in to change notification settings

CaMnter/android-static-analysis-plugin

Repository files navigation

android-static-analysis-plugin


Android hodgepodge static code quality check tool gradle plugin . (q>﹏<q)


δΈ­ζ–‡η‰ˆ


Download




Gradle

project build.gradle

dependencies {
    com.camnter.gradle.plugin:static-analysis-plugin:1.0.6
}

module build.gradle

apply plugin: 'com.camnter.gradle.plugin.static.analysis'


About configuration

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.

module build.gradle

apply plugin: 'com.camnter.gradle.plugin.static.analysis'


If you want to configure

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"
    }
}


Execute

gradle check

If you open the configuration

androidStaticAnalysis {
    debugAnalysis = true
    releaseAnalysis = true
}

Run the following command will also be executed

gradle assembleDebug
gradle assembleRelease


Automatically send mail

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.


Stmp related configuration

Complete the following configuration within local.properties

asap.smtpHost=company stmp server address
asap.smtpUser=company email
asap.smtpPassword=company email password

Google Mail Stmp Configuration

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

gmail_1


QQ Mail Stmp Configuration

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

qq_1


NetEase Email Stmp Configuration

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

netease_1 netease_2


Sina Mail Stmp Configuration

Sina Mailbox Settings page, open "POP3/SMTP Service".

asap.smtpHost=smtp.sina.com
asap.smtpUser=sina mailbox
asap.smtpPassword=sina mailbox password

sina_1



License

  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.