• Stars
    star
    309
  • Rank 135,306 (Top 3 %)
  • Language
    Groovy
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Incremental scan,integrate Lint、KtLint、UnitTest、Checkstyle、Findbugs、Pmd, powerful and easy to use

OkCheck

Download

Incremental scan,integrate Lint、KtLint、UnitTest、Checkstyle、Findbugs、Pmd, powerful and easy to use.

中文文档

Basic Incremental Scan

  • Base on the Git version control, compare to the latest success scan => Only scan the changed module
  • Base on the local build cache => If there isn't any change compare to the last scan tasks will finish with up-to-data as far as possible

Example

How to Import

On the build.gradle at your root project:

buildscript {
    dependencies {
        classpath 'com.liulishuo.okcheck:gradle:0.2.8'
    }
}

allprojects {
    apply plugin: 'okcheck'
}

Done! Everything is ready to scan, now you can check with 6 job just run ./gradlew okcheckDebug and just see result, and all report is settle down the build/reports for the root project as default(But if you want all reports save on the origin directory, just set destination to project.buildDir).

There is Snapshot version also valid, if you want to use snapshot version, please add repository on the build.gradle:

buildscript {
  repositories {
      maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
  }
}

Task Description

When you run okcheck task, we will compile and check with all variant(As usual, there are two variant as debug and release), so, normally you just need to check with one variant to increase scan speed, such as okcheckDebug.

  • ./gradlew okcheckDebug: Run the okcheck task for the Debug build type.
  • ./gradlew cleanOkcheckDiff: Clean all cached success commit id(which is on the ~/.okcheck folder as default), since then the next time we will scan all module.
  • ./gradlew -PignoreOkcheckDiff okcheck: Run the okcheck task and ignore cached success commit id, which will raise run okcheck for whole module.
  • ./gradlew -PignoreOkCheckDiff :module1:okcheck: Run the okcheck task for the module1 and ignore its cached success commit id, which will raise run okcheck certainly even if there isn't any change compare to last success scan.

How to Customize

For the convenient, all value on the bellow is the default value as example, the follow code is write on the build.gradle at the root project.

allprojects {
    apply plugin: 'okcheck'

    okcheck {
        exclude = ['**/proto/*.java']
        destination = project.rootProject.buildDir

        unittest {
            enabled = true
        }
        lint {
            enabled = true
            exclude = ['**/proto/*.java']

        }
        ktlint {
            enabled = true
            exclude = ['**/proto/*.java']
            version = "0.22.0"
        }
        checkstyle {
            enabled = true
            exclude = ['**/proto/*.java']
            // We will use the default config build-in the okcheck
            configFile = null
        }
        findbugs {
            enabled = true
            exclude = ['**/proto/*.java']

            effort = "default"

            // Whether allow the build to continue if there are warnings
            ignoreFailures = false
            // We will use the default excludeFilter file build-in the okcheck
	    excludeFilter = null
        }
        pmd {
            enabled = true
            exclude = ['**/proto/*.java']

            // Whether allow the build to continue if there are warnings
            ignoreFailures = false
            // We will use the default ruleSetFiles build-in the okcheck
            ruleSetFiles = null
        }

        coverageReport {
            xml.enabled = false
            html.enabled = false 
            csv.enabled = false
        }
    }
}

Others

  • As you know, the first time of running okcheck will check all module as default
  • If you want to suppress some methods or lines for checkstyle task, as default build-in checkstyle config, you just need to add suppressions.xml file on your root project directory and define them on it.

Exclude

Following paths are exclude on checkstyle, findbugs, pmd as default:

**/gen/**
**/test/**
**/proto/*.java
**/protobuf/*.java
**/com/google/**/*.java

LICENSE

Copyright (c) 2018 LingoChamp Inc.

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.

More Repositories

1

FileDownloader

Multitask、MultiThread(MultiConnection)、Breakpoint-resume、High-concurrency、Simple to use、Single/NotSingle-process
Java
11,031
star
2

okdownload

A Reliable, Flexible, Fast and Powerful download engine.
Java
5,178
star
3

MagicProgressWidget

MagicProgressCircle & MagicProgressBar
Java
728
star
4

ShareLoginLib

ThirdParty login and share lib
Java
702
star
5

Diplomat

整合第三方 SDK 微信、微博、 QQ 等为统一的 Diplomat 接口。
Objective-C
661
star
6

QiniuImageLoader

在Android上结合七牛提供的API,让加载图片更有效、更节流、更简单、更可控、更酷
Java
524
star
7

LingoRecorder

LingoRecorder is a better recorder for Android, you can easily process pcm from it.
Java
184
star
8

FuriganaTextView

A simple wrapper view for UITextView that can display Furiganas.
Swift
133
star
9

SpanEllipsizeEnd

处理 Span 在 最大宽度文字尾省略号,无效的问题。
Java
89
star
10

Multi-Scale-BERT-AES

Demo for the paper "On the Use of BERT for Automated Essay Scoring: Joint Learning of Multi-Scale Essay Representation"
Python
56
star
11

tensorflow-dkt

Build DKT (Deep Knowledge Tracing) model with TensorFlow
Python
47
star
12

OnlineScorer-Wechat

流利说在线录音打分微信版SDK
JavaScript
37
star
13

OnlineScorer-Android

C
12
star
14

OnlineScorer-iOS

OnlineScorerRecorder for iOS
Objective-C
9
star
15

Mercury

Kotlin
9
star
16

OnlineScorer-Web

JavaScript
6
star
17

open-asr

Python
5
star
18

language-coursescript

Syntax highlighting and snippets for CourseScript.
CoffeeScript
3
star
19

open-wechat-scorer

Server-side SDK for Liulishuo Open Platform
Python
1
star
20

PTSDK-iOS

PTSDK Framework for iOS
Swift
1
star
21

cares

A forked c-ares repository to make GRPC compilation less painful
C
1
star