【问题标题】:Passing -P parameters to gradle from android studio将 -P 参数从 android studio 传递给 gradle
【发布时间】:2015-10-19 13:51:17
【问题描述】:

android studio 中是否有执行此类操作的功能。 基本上,我的 gradle 脚本读取名为 version 的参数,根据它设置某个库的依赖版本。 因此,当我执行 gradlew -Pversion='1.2.3' 时,我会在 gradle 中得到这个字符串。但这只有在我从控制台调用 gradle 时才有效。

有没有办法在 Android Studio 中开始使用项目配置时将参数传递给 gradle(按下小播放三角形)?

注意:我确实在默认配置下找到了 Gradle VM 选项和脚本参数,但添加 -Pversion='1.2.3' 似乎没有效果。

【问题讨论】:

    标签: android android-studio gradle


    【解决方案1】:

    为了向 Android Studio 的run 选项提供参数,您应该在 AndroidStudios Compile Preferences 下设置它们

    AndroidStudio > 首选项...

    在编译器下:ComandLineOptions

    【讨论】:

    • 在 AS 3.0.1 上,这对我有用,并且在传递 gradle 属性时允许即时运行功能。不幸的是,这必须全局设置,并且不能在每个运行配置中设置。此外,正如@KMP 回答的那样,直接使用带有属性的 gradle 任务可以工作,但它会破坏我的 Instant Run。
    • Instant Run 被高估了。 :)
    • 对我来说,它不是使用 -P,而是使用 -D,比如 -DminSDK=23
    【解决方案2】:

    运行 > 编辑配置..

    将脚本参数中的“abcdef”替换为您的参数。

    【讨论】:

    • 不幸的是,这在我的情况下不起作用。我想在使用 Android 应用程序配置时将参数传递给 gradle(屏幕截图左侧的第一个选项)我不想直接运行 Gradle 任务。
    【解决方案3】:

    例如,让我们在构建项目时尝试传递服务器基础端点。首先我们需要定义一个获取url并设置它的方法

    def serverUrl = "https://mydefaulturl.com"
    task(runProgram){
       if(project.hasProperty("url")){
           serverUrl = url;
       }
    }
    

    在你的 buildTypes 中使用这个值创建你的基本 url:

    debug{
       buildConfigField("java.lang.String","BASE_URL","$serverUrl")
    }
    

    现在我们可以通过调试构建一个 url 并使用它。

    您可以使用以下命令从终端构建您的项目:

    ./gradlew installDebug task runProgram '-Purl="https://yournewurl.com"'
    

    【讨论】:

    • 这里加个字段建config有什么用?
    • 如果您使用两个或多个不同的 url 进行测试和生产,您可以使用构建变体或构建类型生成基本 url。在生产之前,评论或评论一些关键变量(例如基本网址)不是一个好案例。
    • 如果您将这些代码添加到您的构建 gradle 并从 android studio 的终端运行 gradlew 代码,这将是在 android studio 中执行的一种方式。 :)
    • @Burf2000 尝试它的努力会比写评论要少......
    • 我不知道为什么人们对我的答案投了反对票,但代码正在运行,我仍在生产中使用它:)
    【解决方案4】:

    version="1.2.3"放在gradle.properties或者下面

    buildscript {
        ext{
            version="1.2.3"
        }
    ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      相关资源
      最近更新 更多