gradle - 在另一个任务中的一个任务的配置阶段中设置属性

标签 gradle build properties configuration task

我花了最后几个小时试图找到符合我要求的解决方案,但是没有运气:

我有一项任务,必须在特定路径上运行一些逻辑:

task run(type: MyPlugin) {
    pathForPlugin = myPath //Defined as a property in another gradle file
}

我想在另一个任务中动态设置“pathForPlugin”属性,因为必须从某些配置文件中读取它。
task initPaths(type: PathFinder) {
     configurationFile = 'C:\\myConfig.conf'
}

myConfig.conf如下所示:
pathForPlugin = 'C:\\Correct\\Path'

问题是“initPaths”必须在“运行”的配置阶段之前运行。
我为此尝试了几种方法(GradleBuild任务,dependsOn,对“延迟配置”使用插件中的属性),但是每种方法仅在执行阶段生效,导致“pathForPlugin”始终保持其默认值。

有什么办法可以实现这一目标,还是应该在Gradle构建之外寻找其他解决方案?

最佳答案

我找到了解决问题的方法:

我没有定义任务“initPaths”,而是直接在构建脚本中使用了Java类“Pathfinder”:

import mypackage.PathFinder;

new PathFinder(project).run()

您只需要确保这部分超出了使用属性的任务的定义。

我承认这有点“棘手”的解决方案,但可以满足我的要求。

关于gradle - 在另一个任务中的一个任务的配置阶段中设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53168947/

相关文章:

visual-studio - 确定它是在 Visual Studio 中的预链接步骤中调用的 .cmd 脚本中的构建还是重建

git pull origin master,不 pull 检查是否有冲突

javascript - 如何 "override"原型(prototype)上定义的(get-)属性?

java - 用本地克隆替换 gradle 依赖项

android - 多个support-v4 jar导致问题

javascript - 以正确的顺序合并 javascript 文件

java - 属性顺序放入 Java 属性文件中

python - 属性与描述符与 __getattribute__ 的用例

java - Selenium 示例代码 java 出现问题

android - 获取 AAPT 错误 : check logs for details