Gradle: как использовать внешнюю конечную переменную в файлах Gradle - PullRequest
1 голос
/ 13 июля 2020

У меня основной c вопрос. В моем проекте я определил окончательную переменную в root build.gradle, как показано ниже

final int PUBLISH_TYPE_DEV = 1
allprojects {
    repositories {
    ...
    }
    project.ext {
        versionCode = 63055
        ...
    }
}

Затем мне нужно указать PUBLISH_TYPE_DEV в файле build.gradle приложения. Я попробовал напрямую "PUBLISH_TYPE_DEV", или project.PUBLISH_TYPE_DEV, или проект ["PUBLISH_TYPE_DEV"], ни один из них у меня не работает. Он показывает сообщение «Не удалось получить неизвестное свойство 'PUBLISH_TYPE_GREY».

Как использовать эту последнюю переменную в build.gradle подмодуля?

Ответы [ 4 ]

0 голосов
/ 13 июля 2020

Другое решение - иметь файл настраиваемых свойств, в котором вы будете хранить свои параметры

parameters.properties

# a beautiful comment to explain
PUBLISH_TYPE_DEV=1

Затем в вашем build.gradle

// Load Configuration
try {
    Properties props = new Properties()
    props.load(new FileInputStream("parameters.properties"))
    props.each { prop -> project.ext.setProperty(prop.key, prop.value) }
} catch (exception) {
    throw new InvalidUserDataException("Parameters not found : $exception.message")
}

if (project.hasProperty("PUBLISH_TYPE_DEV")) {
    // do what you want
} else  {
    throw new InvalidUserDataException('Parameter not found : PUBLISH_TYPE_DEV')
}
0 голосов
/ 13 июля 2020
you can make it like this
android{
defaultConfig {
         
         buildConfigField "String", "BaseUrl","\"http:\\example.com\""
                      }
    
        }

, и вы можете использовать его так:

BuildConfig.BaseUrl
0 голосов
/ 13 июля 2020

используйте этот код

Пример:

ext {
compileSdkVersion = 29
buildToolsVersion = "29.0.2"
targetSdkVersion = 29
}

вызов:

 buildToolsVersion rootProject.ext.buildToolsVersion
0 голосов
/ 13 июля 2020

В проекте build.gradle вы можете написать это:

buildscript {
    ext {
        PUBLISH_TYPE_DEV = '1'
    }
}

И затем в своем модуле build.gradle вы можете ссылаться на него с помощью $PUBLISH_TYPE_DEV

...