问题描述
我有一个插件,需要根据任务是否要运行来切换属性。之所以需要这样做,是因为在ide(intellij)中运行时,需要禁用此标志,而如果运行特定的运行时任务,则需要启用此标志。
我尝试过
gradle.taskGraph.whenReady { if (it.hasTask(tasks.runtime)) {
javafx.configuration = "compileOnly"
}
}
但这给我一个错误
Cannot change dependencies of dependency configuration ':implementation' after it has been included in dependency resolution.
是否有任何方法可以根据任务更早地(在插件配置期间)设置此属性,或者有更好的方法来完成此操作?
解决方法
在构建脚本中,您可以评估IDE添加的以下属性:
-
当您从IDE运行Gradle任务时,IDE会设置
-
idea.active
属性; -
idea.sync.active
属性,该属性由IDE在reloads project from Gradle build scripts时添加。
例如:System.getProperty('idea.active')
。