Можно ли установить versionName приложения Android в соответствии с разрешенной версией зависимости? - PullRequest
0 голосов
/ 06 июня 2018

Я работаю над приложением для Android, в котором 95% функциональности содержится в библиотеке, которую я написал.Эта же библиотека будет использоваться в более чем 30 приложениях, и я бы не хотел устанавливать версию каждого приложения вручную.Вместо этого я хочу установить versionName приложения на основе разрешенной версии библиотеки (поскольку она явно не указана в файле build.grade).

Вот мой текущий файл build.gradle для приложения:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.commentsold.demo"
        minSdkVersion 18
        targetSdkVersion 27
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'io.fabric'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:multidex:1.0.3'
    testImplementation 'junit:junit:4.12'
    implementation 'com.github.CommentSold:Android-CommentSoldKit:1+'
}

android {
    defaultConfig {
        versionCode 1
        versionName ***SET_THIS_NAME_BASED_ON_Android-CommentSoldKit***
    }
}

apply plugin: 'com.google.gms.google-services'

Обратите внимание, заполнитель ** SET_THIS_NAME_BASED_ON_Android-CommentSoldKit **.Вот где я хотел бы заменить что-то вроде «1.0.0».

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете определить общие переменные в корне вашего проекта build.gradle через что-то вроде этого:

buildscript {
    ext {
        my_lib = "com.github.CommentSold:Android-CommentSoldKit:1.0.0"
    }
}

Затем внутри каждого из build.gradle вашего приложения вы можете сделать

def common = rootProject.ext
dependencies {
    implementation common.my_lib
}

Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...