apply plugin: "com.android.application" apply plugin: "findbugs" apply plugin: "pmd" def ABORT_ON_CHECK_FAILURE = false tasks.withType(Test) { systemProperty "MiFirmwareDir", System.getProperty("MiFirmwareDir", null) systemProperty "logback.configurationFile", System.getProperty("user.dir", null) + "/app/src/main/assets/logback.xml" systemProperty "GB_LOGFILES_DIR", java.nio.file.Files.createTempDirectory("gblog").toString() } android { compileOptions { // for KitKat sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } compileSdkVersion 27 buildToolsVersion "27.0.3" defaultConfig { applicationId "nodomain.freeyourgadget.gadgetbridge" minSdkVersion 19 targetSdkVersion 27 // Note: always bump BOTH versionCode and versionName! versionName "0.29.0" versionCode 136 vectorDrawables.useSupportLibrary = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } lintOptions { abortOnError ABORT_ON_CHECK_FAILURE lintConfig file("${project.rootDir}/config/lint/lint.xml") // If true, generate an HTML report (with issue explanations, sourcecode, etc) htmlReport true // Optional path to report (default will be lint-results.html in the builddir) htmlOutput file("$project.buildDir/reports/lint/lint.html") } testOptions { unitTests { returnDefaultValues = true includeAndroidResources = true } } } pmd { toolVersion = "5.5.5" } dependencies { // testImplementation "ch.qos.logback:logback-classic:1.1.3" // testImplementation "ch.qos.logback:logback-core:1.1.3" testImplementation "junit:junit:4.12" testImplementation "org.mockito:mockito-core:1.10.19" testImplementation "org.robolectric:robolectric:3.6.1" implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.android.support:appcompat-v7:27.1.1" implementation "com.android.support:cardview-v7:27.1.1" implementation "com.android.support:recyclerview-v7:27.1.1" implementation "com.android.support:support-v4:27.1.1" implementation "com.android.support:gridlayout-v7:27.1.1" implementation "com.android.support:design:27.1.1" implementation "com.android.support:palette-v7:27.1.1" implementation("com.github.tony19:logback-android-classic:1.1.1-6") { exclude group: "com.google.android", module: "android" } implementation "org.slf4j:slf4j-api:1.7.12" implementation "com.github.Freeyourgadget:MPAndroidChart:5e5bd6c1d3e95c515d4853647ae554e48ee1d593" implementation "com.github.pfichtner:durationformatter:0.1.1" implementation "de.cketti.library.changelog:ckchangelog:1.2.2" implementation "net.e175.klaus:solarpositioning:0.0.9" // use pristine greendao instead of our custom version, since our custom jitpack-packaged // version contains way too much and our custom patches are in the generator only. implementation "org.greenrobot:greendao:2.2.1" implementation "org.apache.commons:commons-lang3:3.5" implementation "org.cyanogenmod:platform.sdk:6.0" // implementation project(":DaoCore") } preBuild.dependsOn(":GBDaoGenerator:genSources") gradle.beforeProject { preBuild.dependsOn(":GBDaoGenerator:genSources") } check.dependsOn "findbugs", "pmd", "lint" task pmd(type: Pmd) { ruleSetFiles = files("${project.rootDir}/config/pmd/pmd-ruleset.xml") ignoreFailures = !ABORT_ON_CHECK_FAILURE ruleSets = [ "java-android", "java-basic", "java-braces", "java-clone", "java-codesize", "java-controversial", "java-coupling", "java-design", "java-empty", "java-finalizers", "java-imports", "java-junit", "java-optimizations", "java-strictexception", "java-strings", "java-sunsecure", "java-typeresolution", "java-unnecessary", "java-unusedcode" ] source "src" include "**/*.java" exclude "**/gen/**" reports { xml.enabled = false html.enabled = true xml { destination "$project.buildDir/reports/pmd/pmd.xml" } html { destination "$project.buildDir/reports/pmd/pmd.html" } } } task findbugs(type: FindBugs) { ignoreFailures = !ABORT_ON_CHECK_FAILURE effort = "default" reportLevel = "medium" excludeFilter = new File("${project.rootDir}/config/findbugs/findbugs-filter.xml") classes = files("${project.rootDir}/app/build/intermediates/classes") source = fileTree("src/main/java/") classpath = files() reports { xml.enabled = false html.enabled = true xml { destination "$project.buildDir/reports/findbugs/findbugs-output.xml" } html { destination "$project.buildDir/reports/findbugs/findbugs-output.html" } } }