如何判断gradle何时从AndroidStudio运行?

g0czyy6m  于 2023-10-19  发布在  Android
关注(0)|答案(4)|浏览(95)

我需要在我的gradle构建文件中构建一些hack,以便Android Studio能够理解一些内容。当我从命令行目录运行构建时,我不需要这些技巧。是否有方法可以检测构建何时从Android Studio中运行?通过环境变量,等等。

vcudknz3

vcudknz31#

从命令行和构建中使用gradle -P blah=val。gradle使用project.hasProperty("blah")project.getProperty("test")if (blah ... )来决定是否运行黑客。

更新时间:

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

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

d5vmydt92#

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
}
nr9pn0ug

nr9pn0ug3#

Jake Wharton建议android.injected.invoked.from.ide在开发时通过使用反射来加速butterknife:

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用户:我正在开发一个基于反射的实现,以便在开发过程中使用,因此不需要注解处理器。
A follow-up
这是什麽?来自(链接:http://gradle.properties)gradle.properties?
answer we want
不,它是IDE添加的

ukxgm1gy

ukxgm1gy4#

使用KotlinDSL:

if (System.getProperty("idea.active") == "true") {
    println("Running in Android Studio or some other IDEA based ide")
}
// Else the property will be null

相关问题