【问题标题】:How to tell when gradle is being run from AndroidStudio?如何判断何时从 Android Studio 运行 gradle?
【发布时间】:2013-09-16 09:42:50
【问题描述】:

我需要在我的 gradle 构建文件中构建一些 hack,以便 Android Studio 理解一些事情。当我从命令行目录运行构建时,我不需要这些技巧。有没有办法检测何时从 Android Studio 中运行构建?也许通过环境变量等?

【问题讨论】:

    标签: android gradle android-gradle-plugin


    【解决方案1】:

    使用 AndroidStudio 2.1.1,您可以使用 idea.platform.prefix 属性:

    def sysprops = System.getProperties()
    if (sysprops['idea.platform.prefix'] != null) {
        // Built from AndroidStudio
    } else {
        // Built from command line
    }
    

    【讨论】:

      【解决方案2】:

      在命令行中使用 gradle -P blah=val 并在 build.gradle 中使用 project.hasProperty("blah")project.getProperty("test")if (blah ... ) 来决定是否运行您的 hack。

      更新:

      好的,我找到了直接的方法:)

      def env = System.getProperties()
      if (env['com.android.studio.gradle.project.path'] != null) {
          // build from Android Studio, do magic here
      }
      

      【讨论】:

      • 这是个好主意,但如果 Android Studio 有内置的方法会更好。我不想每次运行构建时都要记住设置属性。
      • 看起来android.injected.invoked.from.ide设置在环境as well中。
      • 这仍然适用于 Android Studio 2.0 吗?当我从 Android Studio 编译时,没有设置这两个环境变量(android.injected.invoked.from.ide 和 com.android.studio.gradle.project.path):-(
      • 不错的一个。我需要这个东西!!
      【解决方案3】:

      杰克沃顿建议android.injected.invoked.from.ideto speed butterknife at development time by using reflection

      dependencies {
        if (properties.containsKey('android.injected.invoked.from.ide')) {
          implementation 'com.jakewharton:butterknife-reflect:<version>'
        } else {
          implementation 'com.jakewharton:butterknife:<version>'
          kapt 'com.jakewharton:butterknife-compiler:<version>'
        }
      }
      

      来自Twitter

      嘿 ButterKnife 用户:我正在开发基于反射的实现,以便在开发期间使用,因此不需要注释处理器。

      follow-up:

      这是什么?来自(链接:http://gradle.properties)gradle.properties 的属性?

      answer we want

      不是IDE添加的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-03
        • 2015-06-16
        • 1970-01-01
        • 2019-10-23
        • 1970-01-01
        • 2019-11-07
        • 2019-12-04
        • 1970-01-01
        相关资源
        最近更新 更多