android - 根据 build.gradle 中的风格传递参数

标签 android gradle android-gradle-plugin

我需要在构建我的 Android 项目之前运行一个脚本。但是,我想将一个参数传递给脚本,这取决于正在构建的变体(假设是 flavor 的包名称)。我知道如何为所有变体运行脚本,但实际上我只想为当前变体运行它,否则会花费太多时间。

我当前的 build.gradle 看起来像这样:

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.3'

    productFlavors {
        MyFlavor {
            packageName "com.my.package"
        }
    }
}

task runScript(type: Exec) {
    commandLine 'ruby', 'script.rb', my-package-name
}

preBuild.dependsOn runScript

有人知道怎么做吗?谢谢!

最佳答案

在 build.gradle 文件中编写如下自定义参数属性:

packageName = hasProperty('packagename') ? packagename : 'your-default-package name'

修改 build.gradle 文件中的以下行:

task preBuild (type: Test, dependsOn: runScript)

当你从命令行运行 gradew 时,运行类似于下面的东西:

gradlew preBuild -Ppackagename="your-package-name"

请让我们知道这是否有效!

关于android - 根据 build.gradle 中的风格传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699763/

相关文章:

Android Studio 3.2 稳定,找不到 databinding-compiler-common.jar

android - MuPdf 内存不足

java - 适用于 Eclipse 但不适用于 Android Studio 的 Jsoup 代码 (httpurlconnectionimpl)

java - 为什么使用Gradle代替Ant或Maven?

android - 无法为任务 ':app:javaPreCompileProductionDebug' 捕获输入文件的指纹

java - 将 Android Java 模块转换为普通 Java 模块需要执行哪些步骤?

java - 我可以在 JAVA STATEMENT 中获取 "gradle.properties"中定义的属性吗?

java - FrameLayout onClick 事件不起作用

android - 新的gradle插件版本(4.1.0): no longer returning any ressource fields

Android Studio - 使用依赖于另一个 Android 库的 Android 库构建 Android 项目