【问题标题】:Can't make gradle task pass value in Java during build time在构建期间无法使 gradle 任务在 Java 中传递值
【发布时间】:2019-07-21 08:27:16
【问题描述】:

所以我有一个任务,它读取文件并将其值传递到 BuildConfig 类中传递的属性中,以便可以通过 Android Studio 中的 Java 类访问它。当我单独运行任务时,它会打印出从文件中获取的读取值。但是,当我按“运行”运行我的应用程序时,该属性的值在 BuildConfig 中保持默认值,就像任务从未运行一样。

INSIDE build.gradle of Project:

task testVariableInsertion() {
    doLast {
        File file = file('.gitignore')
        println domainName
        domainName = file.text;
        println domainName;
        project.logger.info('task runned NOW!!!!!!!!!!!!!')
    }
}

模块“app”的内部 build.gradle:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.testingproject"
        minSdkVersion 24
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        buildConfigField "String", "DOMAIN_NAME", "${domainName}"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

期待 gradle 会自动运行任务,这似乎是因为如果我在构建后键入“gradlew --info”,我会收到日志消息。是因为它读取文件并且在完成读取值时已经在 BuildConfig 中传递了吗?我错过了什么?

【问题讨论】:

    标签: java android variables build gradle-task


    【解决方案1】:

    几天前找到了答案,为了让它工作,我必须像这样定义我的任务:

    def testVariableInsertion = {
            File file = file('.gitignore')
            println domainName
            domainName = file.text;
            println domainName;
            project.logger.info('task runned NOW!!!!!!!!!!!!!')
    }
    

    并在下面调用它

    testVariableInsertion()
    

    “ext”括号内还有我的变量 domainName

    ext {
    domainname = "defaultValue"
    }
    

    然后在app模块的defaultConfig中:

    buildConfigField "String", "DOMAIN_NAME", rootProject.ext.domainName
    

    【讨论】:

      猜你喜欢
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多