为什么Android Studio不运行我的generateConfig但命令行呢

时间:2016-09-12 23:49:19

标签: android-studio gradle dynamically-generated

我试图为项目中的每个子项目生成相同的资产。由于每个子项目必须完全相同,我试图避免将生成代码添加到每个子项目。

到目前为止,我得到的是:

// in my outer build.gradle
allprojects { proj ->
    gradle.projectsEvaluated {
        def configTemplate = project.file('src/main/templates/configuration.json')
        def android = proj.getProperties()['android']

        if (configTemplate.exists() && android != null) {
            task generateConfigFiles(type: ConfigureTask) {
                template configTemplate
                environments proj.rootProject.file('scripts/environments.json')
                environmentName host
                destination new File(project.buildDir, 'templates/configuration.json')
            }

            android.applicationVariants.all { variant ->
                variant.mergeAssets.dependsOn generateConfigFiles
            }
        }
    }
}

// each application build.gradle
android {
    sourceSets {
        main {
            assets.srcDir 'build/templates'
        }
    }
}

当我从命令行运行gradle ./gradlew mergeQaDebugAssets运行generateConfigFiles任务然后运行mergeQaDebugAssets

之前,这似乎完全符合预期

如果我尝试使用gradle窗口从Android Studio运行此功能,则它永远不会运行generateConfigFiles

我还通过在每个项目projectsEvaluated文件中加入build.gradle步骤来使其工作,但是,如上所述,我试图避免代码带来的重复和维护问题。

0 个答案:

没有答案