【发布时间】:2014-08-15 10:25:34
【问题描述】:
有没有办法检测我正在运行我的项目的环境。
类似这样的:
build.gradle
def usingIntelliJ = ...
def usingAndroidStudio = ...
if (usingIntelliJ) {
buildConfigField "String", "IDE_ENV", "IDEA"
} else if (usingAndroidStudio) {
buildConfigField "String", "IDE_ENV", "AndroidStudio"
}
【问题讨论】:
-
出于好奇,您为什么要根据您的 IDE 在 Java 中使用不同的行为?
-
我正在使用 gradle 和 robolectric-gradle-plugin 进行单元测试。我执行命令
gradle clean test时的测试运行文件。但是,当我使用 IntelliJ 运行测试时,它不起作用。如果我在 IntelliJ 上运行System.getProperty("android.manifest"),结果是空的。所以我知道测试是用 IntelliJ 运行的,我会自己设置属性android.manifest。 -
有什么理由不能只为所有情况设置该属性吗?设置该属性中断测试是否会在 IntelliJ 之外运行?我不排除有一种方法可以检测触发 Gradle 构建的环境,但我的猜测是它充其量只是一个脆弱的解决方案。
-
@CommonsWare 我想我找到了一个用例,希望找出我们是否从 IDE 运行 - 即时运行! :)
-
@CommonsWare 另一个用例是当 IDE 有一个您想要解决的错误,但从命令行运行时该解决方法会中断构建。
标签: android intellij-idea gradle