如何判断何时从Android Studio运行gradle?

时间:2013-09-16 09:42:50

标签: android gradle android-gradle

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

3 个答案:

答案 0 :(得分:4)

使用 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
}

答案 1 :(得分:3)

从命令行使用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
}

答案 2 :(得分:0)

Jake Wharton建议android.injected.invoked.from.ide to 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

  

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

answer we want

  

否,它是由IDE添加的