Skip to content

Commit

Permalink
Clean up the Gradle structure
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Rybitskyi committed Aug 16, 2020
1 parent 0d181ac commit d8bbc66
Show file tree
Hide file tree
Showing 8 changed files with 160 additions and 106 deletions.
19 changes: 9 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "common/constants.gradle"
apply plugin: "com.github.ben-manes.versions"

buildscript {
ext.kotlin_version = "1.3.50"
apply from: "gradle/configs/app_config.gradle"
apply from: "gradle/configs/publishing_config.gradle"

repositories {
google()
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

classpath 'com.android.tools.build:gradle:4.0.0'
classpath "com.github.dcendents:android-maven-gradle-plugin:2.1"
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
dependencies {
classpath deps.androidGradlePlugin
classpath deps.kotlinGradlePlugin
classpath deps.gradleVersionsPlugin
classpath deps.mavenGradlePlugin
classpath deps.bintrayUploadPlugin
}
}

Expand Down
40 changes: 0 additions & 40 deletions common/constants.gradle

This file was deleted.

46 changes: 46 additions & 0 deletions gradle/configs/app_config.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
ext {
appConfig = [
compileSdkVersion: 29,
targetSdkVersion: 29,
minSdkVersion: 21,
buildToolsVersion: "29.0.2",
applicationId: "com.paulrybitskyi.sample",
versionCode: 1,
versionName: "1.0.0",
javaCompatibilityVersion: JavaVersion.VERSION_1_8,
kotlinCompatibilityVersion: JavaVersion.VERSION_1_8
]

depVersions = [
kotlinVersion: "1.3.72",
gradlePluginVersion: "4.0.1",
gradleVersionsPluginVersion: "0.29.0",
mavenGradlePlugin: "2.1",
bintrayUploadPlugin: "1.8.5",
appCompatVersion: "1.1.0",
cardViewVersion: "1.0.0",
browserVersion: "1.2.0",
recyclerViewVersion: "1.1.0",
adapsterVersion: "1.0.13",
annotationsVersion: "1.0.0",
jUnitVersion: "4.13",
testRunnerVersion: "1.2.0"
]

deps = [
androidGradlePlugin: "com.android.tools.build:gradle:${depVersions.gradlePluginVersion}",
kotlinGradlePlugin: "org.jetbrains.kotlin:kotlin-gradle-plugin:${depVersions.kotlinVersion}",
gradleVersionsPlugin: "com.github.ben-manes:gradle-versions-plugin:${depVersions.gradleVersionsPluginVersion}",
mavenGradlePlugin: "com.github.dcendents:android-maven-gradle-plugin:${depVersions.mavenGradlePlugin}",
bintrayUploadPlugin: "com.jfrog.bintray.gradle:gradle-bintray-plugin:${depVersions.bintrayUploadPlugin}",
kotlinStdLib: "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${depVersions.kotlinVersion}",
appCompat: "androidx.appcompat:appcompat:${depVersions.appCompatVersion}",
cardView: "androidx.cardview:cardview:${depVersions.cardViewVersion}",
browser: "androidx.browser:browser:${depVersions.browserVersion}",
recyclerView: "androidx.recyclerview:recyclerview:${depVersions.recyclerViewVersion}",
adapster: "com.arthurivanets.adapster:adapster:${depVersions.adapsterVersion}",
annotations: "androidx.annotation:annotation:${depVersions.annotationsVersion}",
jUnit: "junit:junit:${depVersions.jUnitVersion}",
testRunner: "androidx.test:runner:${depVersions.testRunnerVersion}"
]
}
18 changes: 18 additions & 0 deletions gradle/configs/publishing_config.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
ext {
publishingConfig = [
releaseRepoName: "maven",
releaseGroupId: "com.paulrybitskyi.persistentsearchview",
releaseWebsite: "https://github.com/mars885/persistent-search-view",
releaseLicense: ["Apache-2.0"],
releaseNotesFile: "CHANGELOG.md",
licenseName: "The Apache Software License, Version 2.0",
licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0.txt",
allLicenses: ["Apache-2.0"],
developerId: "mars885",
developerName: "Paul Rybitskyi",
developerEmail: "paul.rybitskyi.work@gmail.com",
siteUrl: "https://github.com/mars885/persistent-search-view",
gitUrl: "https://github.com/mars885/persistent-search-view.git",
issueTracker: "https://github.com/mars885/persistent-search-view/issues"
]
}
54 changes: 27 additions & 27 deletions gradle/script/publish.gradle → gradle/scripts/publish.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ apply plugin: "com.github.dcendents.android-maven"
apply plugin: "com.jfrog.bintray"


group = releaseGroupId
version = releaseVersion
group = publishingConfig.releaseGroupId
version = publishingConfig.releaseVersion

task androidSourcesJar(type: Jar) {
classifier = 'sources'
Expand All @@ -16,9 +16,9 @@ task androidSourcesJar(type: Jar) {
publishing {
publications {
aar(MavenPublication) {
groupId = releaseGroupId
artifactId = releaseArtifact
version = releaseVersion
groupId = publishingConfig.releaseGroupId
artifactId = publishingConfig.releaseArtifact
version = publishingConfig.releaseVersion

// Tell maven to prepare the generated "*.aar" file for publishing
artifact(androidSourcesJar)
Expand All @@ -31,32 +31,32 @@ install {
repositories.mavenInstaller {
pom.project {
packaging "aar"
groupId releaseGroupId
artifactId releaseArtifact
groupId publishingConfig.releaseGroupId
artifactId publishingConfig.releaseArtifact

name releaseArtifact
description releaseDescription
url releaseWebsite
name publishingConfig.releaseArtifact
description publishingConfig.releaseDescription
url publishingConfig.releaseWebsite

licenses {
license {
name licenseName
url licenseUrl
name publishingConfig.licenseName
url publishingConfig.licenseUrl
}
}

developers {
developer {
id developerId
name developerName
email developerEmail
id publishingConfig.developerId
name publishingConfig.developerName
email publishingConfig.developerEmail
}
}

scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
connection publishingConfig.gitUrl
developerConnection publishingConfig.gitUrl
url publishingConfig.siteUrl
}
}
}
Expand Down Expand Up @@ -120,22 +120,22 @@ bintray {
configurations = ["archives"]

pkg {
repo = releaseRepoName
repo = publishingConfig.releaseRepoName
//userOrg = releaseUserOrg
name = releaseArtifact
desc = releaseDescription
websiteUrl = siteUrl
vcsUrl = gitUrl
issueTrackerUrl = issueTracker
githubReleaseNotesFile = releaseNotesFile
licenses = allLicenses
name = publishingConfig.releaseArtifact
desc = publishingConfig.releaseDescription
websiteUrl = publishingConfig.siteUrl
vcsUrl = publishingConfig.gitUrl
issueTrackerUrl = publishingConfig.issueTracker
githubReleaseNotesFile = publishingConfig.releaseNotesFile
licenses = publishingConfig.allLicenses
dryRun = false
publish = true
override = false
publicDownloadNumbers = false

version {
desc = releaseDescription
desc = publishingConfig.releaseDescription
}
}
}
Expand Down
42 changes: 27 additions & 15 deletions persistentsearchview/build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
apply plugin: 'com.android.library'

apply from: 'library_config.gradle'

android {
compileSdkVersion rootProject.compileSdk
compileSdkVersion appConfig.compileSdkVersion
buildToolsVersion appConfig.buildToolsVersion

defaultConfig {
minSdkVersion rootProject.minSdk
targetSdkVersion rootProject.targetSdk
versionCode rootProject.releaseVersionCode
versionName rootProject.releaseVersion
minSdkVersion appConfig.minSdkVersion
targetSdkVersion appConfig.targetSdkVersion
versionCode libraryConfig.versionCode
versionName libraryConfig.versionName

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {
Expand All @@ -20,21 +22,31 @@ android {
}
}

compileOptions {
sourceCompatibility appConfig.javaCompatibilityVersion
targetCompatibility appConfig.javaCompatibilityVersion
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation "androidx.appcompat:appcompat:${rootProject.appCompatLibraryVersion}"
implementation "androidx.cardview:cardview:${rootProject.cardViewLibraryVersion}"
implementation "androidx.recyclerview:recyclerview:${rootProject.recyclerViewLibraryVersion}"
implementation "androidx.annotation:annotation:${rootProject.annotationLibraryVersion}"
implementation "com.arthurivanets.adapster:adapster:${rootProject.adapsterLibraryVersion}"
implementation deps.appCompat
implementation deps.cardView
implementation deps.recyclerView
implementation deps.adapster
implementation deps.annotations

testImplementation "junit:junit:${rootProject.jUnitVersion}"
testImplementation deps.jUnit
androidTestImplementation deps.testRunner
}

androidTestImplementation "androidx.test:runner:${rootProject.testRunnerVersion}"
ext {
publishingConfig.releaseArtifact = libraryConfig.artifactName
publishingConfig.releaseDescription = libraryConfig.artifactDescription
publishingConfig.releaseVersion = libraryConfig.versionName
}

apply from: "../common/constants.gradle"
apply from: "../gradle/script/publish.gradle"
project.archivesBaseName = publishingConfig.releaseArtifact

apply from: "../gradle/scripts/publish.gradle"
8 changes: 8 additions & 0 deletions persistentsearchview/library_config.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ext {
libraryConfig = [
versionCode: 5,
versionName: "1.1.2",
artifactName: "persistentsearchview",
artifactDescription: "Android library designed to simplify the process of implementing search-related functionality.",
]
}
39 changes: 25 additions & 14 deletions sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
compileSdkVersion rootProject.compileSdk
compileSdkVersion appConfig.compileSdkVersion
buildToolsVersion appConfig.buildToolsVersion

defaultConfig {
applicationId "com.paulrybitskyi.sample"
minSdkVersion 21
targetSdkVersion rootProject.targetSdk
versionCode rootProject.releaseVersionCode
versionName rootProject.releaseVersion
applicationId appConfig.applicationId
minSdkVersion appConfig.minSdkVersion
targetSdkVersion appConfig.targetSdkVersion
versionCode appConfig.versionCode
versionName appConfig.versionName

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Expand All @@ -25,19 +27,28 @@ android {
lintOptions {
abortOnError false
}

compileOptions {
sourceCompatibility appConfig.javaCompatibilityVersion
targetCompatibility appConfig.javaCompatibilityVersion
}

kotlinOptions {
jvmTarget = appConfig.kotlinCompatibilityVersion
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation "androidx.appcompat:appcompat:${rootProject.appCompatLibraryVersion}"
implementation "androidx.cardview:cardview:${rootProject.cardViewLibraryVersion}"
implementation "androidx.browser:browser:${rootProject.browserLibraryVersion}"
implementation "androidx.recyclerview:recyclerview:${rootProject.recyclerViewLibraryVersion}"
implementation "com.arthurivanets.adapster:adapster:${rootProject.adapsterLibraryVersion}"
implementation project(':persistentsearchview')

testImplementation "junit:junit:${rootProject.jUnitVersion}"
androidTestImplementation "androidx.test:runner:${rootProject.testRunnerVersion}"
implementation deps.appCompat
implementation deps.cardView
implementation deps.browser
implementation deps.recyclerView
implementation deps.adapster

implementation project(path: ':persistentsearchview')
testImplementation deps.jUnit
androidTestImplementation deps.testRunner
}

0 comments on commit d8bbc66

Please sign in to comment.