Skip to content
This repository has been archived by the owner on Aug 2, 2024. It is now read-only.

Refactor some build logic to the buildSrc & gradle kotlin-dsl #218

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ apply plugin: 'kotlin-kapt'
apply plugin: 'androidx.navigation.safeargs'

android {
compileSdkVersion rootProject.compileSdkVersion
compileSdkVersion Config.compileSdkVersion
dataBinding {
enabled = true
}
defaultConfig {
applicationId "com.google.samples.apps.sunflower"
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
minSdkVersion Config.minSdkVersion
targetSdkVersion Config.targetSdkVersion
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionCode 1
versionName "0.1.6"
Expand All @@ -47,28 +47,28 @@ android {
}

dependencies {
kapt "androidx.room:room-compiler:$rootProject.roomVersion"
kapt "com.github.bumptech.glide:compiler:$rootProject.glideVersion"
implementation "android.arch.navigation:navigation-fragment-ktx:$rootProject.navigationVersion"
implementation "android.arch.navigation:navigation-ui-ktx:$rootProject.navigationVersion"
implementation "android.arch.work:work-runtime-ktx:$rootProject.workVersion"
implementation "androidx.appcompat:appcompat:$rootProject.supportLibraryVersion"
implementation "androidx.constraintlayout:constraintlayout:$rootProject.constraintLayoutVersion"
implementation "androidx.core:core-ktx:$rootProject.ktxVersion"
implementation "androidx.legacy:legacy-support-v4:$rootProject.supportLibraryVersion"
implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.lifecycleVersion"
implementation "androidx.recyclerview:recyclerview:$rootProject.supportLibraryVersion"
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
implementation "com.github.bumptech.glide:glide:$rootProject.glideVersion"
implementation "com.google.android.material:material:$rootProject.supportLibraryVersion"
implementation "com.google.code.gson:gson:$rootProject.gsonVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$rootProject.kotlinVersion"
kapt Libs.room_compiler
kapt Libs.com_github_bumptech_glide_compiler
implementation Libs.navigation_fragment_ktx
implementation Libs.navigation_ui_ktx
implementation Libs.work_runtime_ktx
implementation Libs.appcompat
implementation Libs.constraintlayout
implementation Libs.core_ktx
implementation Libs.legacy_support_v4
implementation Libs.lifecycle_extensions
implementation Libs.recyclerview
implementation Libs.room_runtime
implementation Libs.glide
implementation Libs.material
implementation Libs.gson
implementation Libs.kotlin_stdlib_jdk8

// Testing dependencies
androidTestImplementation "androidx.arch.core:core-testing:$rootProject.coreTestingVersion"
androidTestImplementation "androidx.test.espresso:espresso-contrib:$rootProject.espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-core:$rootProject.espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-intents:$rootProject.espressoVersion"
androidTestImplementation "androidx.test.uiautomator:uiautomator:$rootProject.uiAutomatorVersion"
testImplementation "junit:junit:$rootProject.junitVersion"
androidTestImplementation Libs.core_testing // room
androidTestImplementation Libs.espresso_contrib
androidTestImplementation Libs.espresso_core
androidTestImplementation Libs.espresso_intents
androidTestImplementation Libs.uiautomator
testImplementation Libs.junit
}
43 changes: 13 additions & 30 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,15 @@
* limitations under the License.
*/

buildscript {
// Define versions in a single place
ext {
// Sdk and tools
compileSdkVersion = 28
minSdkVersion = 19
targetSdkVersion = 28
/**
* Part of the build logic has been moved to the buildSrc directory
* Versions are defined in buildSrc/src/main/java/Versions.kt
* Libraries are defined in buildSrc/src/main/java/Libs.kt
* Other configurations are defined in buildSrc/src/main/java/Config.kt
*/

// App dependencies
constraintLayoutVersion = '2.0.0-alpha2'
coreTestingVersion = '2.0.0'
espressoVersion = '3.1.0-alpha4'
glideVersion = '4.8.0'
gradleVersion = '3.2.0'
gsonVersion = '2.8.2'
junitVersion = '4.12'
kotlinVersion = '1.3.0-rc-146'
ktlintVersion = '0.29.0'
ktxVersion = '1.0.0'
lifecycleVersion = '2.0.0'
navigationVersion = '1.0.0-alpha06'
roomVersion = '2.0.0'
runnerVersion = '1.0.1'
supportLibraryVersion = '1.0.0'
uiAutomatorVersion = '2.2.0-alpha4'
workVersion = '1.0.0-alpha09'
}

buildscript {

repositories {
google()
Expand All @@ -49,13 +31,14 @@ buildscript {
}

dependencies {
classpath "com.android.tools.build:gradle:$gradleVersion"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:$navigationVersion"
classpath "com.android.tools.build:gradle:" + Versions.com_android_tools_build_gradle
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:" + Versions.kotlin_gradle_plugin
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:" + Versions.navigation_safe_args_gradle_plugin
}
}

plugins {
id("jmfayard.github.io.gradle-kotlin-dsl-libs") version "0.2.4" // $ gw syncLibs
id "com.diffplug.gradle.spotless" version "3.13.0"
}

Expand All @@ -70,6 +53,6 @@ allprojects {
spotless {
kotlin {
target "**/*.kt"
ktlint(ktlintVersion)
ktlint(Config.ktlintVersion)
}
}
2 changes: 2 additions & 0 deletions buildSrc/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build
.gradle/
8 changes: 8 additions & 0 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}

Empty file added buildSrc/settings.gradle.kts
Empty file.
9 changes: 9 additions & 0 deletions buildSrc/src/main/kotlin/Config.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
object Config {
const val compileSdkVersion = 28
const val minSdkVersion = 19
const val targetSdkVersion = 28
const val ktlintVersion = "0.29.0"
}

const val com_diffplug_gradle_spotless_gradle_plugin: String =
"3.13.0" // available milestone: "3.15.0"
163 changes: 163 additions & 0 deletions buildSrc/src/main/kotlin/Libs.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
import kotlin.String

/**
* Generated by [gradle-kotlin-dsl-libs](https://github.com/jmfayard/gradle-kotlin-dsl-libs)
*
* Run again
* `$ ./gradlew syncLibs`
* to update this file */
object Libs {
/**
* [aapt2 website](https://developer.android.com/studio) */
const val aapt2: String = "com.android.tools.build:aapt2:" + Versions.aapt2

/**
* [appcompat website](http://developer.android.com/tools/extras/support-library.html) */
const val appcompat: String = "androidx.appcompat:appcompat:" + Versions.appcompat

/**
* [gradle website](https://developer.android.com/studio) */
const val com_android_tools_build_gradle: String =
"com.android.tools.build:gradle:" + Versions.com_android_tools_build_gradle

const val com_diffplug_gradle_spotless_gradle_plugin: String =
"com.diffplug.gradle.spotless:com.diffplug.gradle.spotless.gradle.plugin:" + Versions.com_diffplug_gradle_spotless_gradle_plugin

/**
* [compiler website](https://github.com/bumptech/glide) */
const val com_github_bumptech_glide_compiler: String =
"com.github.bumptech.glide:compiler:" + Versions.com_github_bumptech_glide_compiler

/**
* [constraintlayout website](http://tools.android.com) */
const val constraintlayout: String =
"androidx.constraintlayout:constraintlayout:" + Versions.constraintlayout

/**
* [core-ktx website](http://developer.android.com/tools/extras/support-library.html) */
const val core_ktx: String = "androidx.core:core-ktx:" + Versions.core_ktx

/**
* [core-testing website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val core_testing: String = "androidx.arch.core:core-testing:" + Versions.core_testing

const val databinding_adapters: String =
"androidx.databinding:databinding-adapters:" + Versions.databinding_adapters

/**
* [databinding-common website](https://developer.android.com/studio) */
const val databinding_common: String =
"androidx.databinding:databinding-common:" + Versions.databinding_common

/**
* [databinding-compiler website](https://developer.android.com/studio) */
const val databinding_compiler: String =
"androidx.databinding:databinding-compiler:" + Versions.databinding_compiler

const val databinding_runtime: String =
"androidx.databinding:databinding-runtime:" + Versions.databinding_runtime

/**
* [espresso-contrib website](https://developer.android.com/testing) */
const val espresso_contrib: String =
"androidx.test.espresso:espresso-contrib:" + Versions.espresso_contrib

/**
* [espresso-core website](https://developer.android.com/testing) */
const val espresso_core: String =
"androidx.test.espresso:espresso-core:" + Versions.espresso_core

/**
* [espresso-intents website](https://developer.android.com/testing) */
const val espresso_intents: String =
"androidx.test.espresso:espresso-intents:" + Versions.espresso_intents

/**
* [glide website](https://github.com/bumptech/glide) */
const val glide: String = "com.github.bumptech.glide:glide:" + Versions.glide

/**
* [gson website](https://github.com/google/gson) */
const val gson: String = "com.google.code.gson:gson:" + Versions.gson

const val jmfayard_github_io_gradle_kotlin_dsl_libs_gradle_plugin: String =
"jmfayard.github.io.gradle-kotlin-dsl-libs:jmfayard.github.io.gradle-kotlin-dsl-libs.gradle.plugin:" + Versions.jmfayard_github_io_gradle_kotlin_dsl_libs_gradle_plugin

/**
* [junit website](http://junit.org) */
const val junit: String = "junit:junit:" + Versions.junit

/**
* [kotlin-android-extensions website](https://kotlinlang.org/) */
const val kotlin_android_extensions: String =
"org.jetbrains.kotlin:kotlin-android-extensions:" + Versions.kotlin_android_extensions

/**
* [kotlin-annotation-processing-gradle website](https://kotlinlang.org/) */
const val kotlin_annotation_processing_gradle: String =
"org.jetbrains.kotlin:kotlin-annotation-processing-gradle:" + Versions.kotlin_annotation_processing_gradle

/**
* [kotlin-gradle-plugin website](https://kotlinlang.org/) */
const val kotlin_gradle_plugin: String =
"org.jetbrains.kotlin:kotlin-gradle-plugin:" + Versions.kotlin_gradle_plugin

/**
* [kotlin-stdlib-jdk8 website](https://kotlinlang.org/) */
const val kotlin_stdlib_jdk8: String =
"org.jetbrains.kotlin:kotlin-stdlib-jdk8:" + Versions.kotlin_stdlib_jdk8

/**
* [legacy-support-v4 website](http://developer.android.com/tools/extras/support-library.html) */
const val legacy_support_v4: String =
"androidx.legacy:legacy-support-v4:" + Versions.legacy_support_v4

/**
* [lifecycle-extensions website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val lifecycle_extensions: String =
"androidx.lifecycle:lifecycle-extensions:" + Versions.lifecycle_extensions

/**
* [lint-gradle website](https://developer.android.com/studio) */
const val lint_gradle: String = "com.android.tools.lint:lint-gradle:" + Versions.lint_gradle

/**
* [material website](http://developer.android.com/tools/extras/support-library.html) */
const val material: String = "com.google.android.material:material:" + Versions.material

/**
* [navigation-fragment-ktx website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val navigation_fragment_ktx: String =
"android.arch.navigation:navigation-fragment-ktx:" + Versions.navigation_fragment_ktx

/**
* [navigation-safe-args-gradle-plugin website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val navigation_safe_args_gradle_plugin: String =
"android.arch.navigation:navigation-safe-args-gradle-plugin:" + Versions.navigation_safe_args_gradle_plugin

/**
* [navigation-ui-ktx website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val navigation_ui_ktx: String =
"android.arch.navigation:navigation-ui-ktx:" + Versions.navigation_ui_ktx

/**
* [recyclerview website](http://developer.android.com/tools/extras/support-library.html) */
const val recyclerview: String = "androidx.recyclerview:recyclerview:" + Versions.recyclerview

/**
* [room-compiler website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val room_compiler: String = "androidx.room:room-compiler:" + Versions.room_compiler

/**
* [room-runtime website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val room_runtime: String = "androidx.room:room-runtime:" + Versions.room_runtime

/**
* [uiautomator website](https://developer.android.com/testing) */
const val uiautomator: String = "androidx.test.uiautomator:uiautomator:" + Versions.uiautomator

/**
* [work-runtime-ktx website](https://developer.android.com/topic/libraries/architecture/index.html) */
const val work_runtime_ktx: String =
"android.arch.work:work-runtime-ktx:" + Versions.work_runtime_ktx
}
Loading