首页 > 解决方案 > 如何从包含的构建中获取 Gradle 任务的属性?

问题描述

我有一个复合 Gradle 构建,并且在根构建中我想在其中一个包含的构建中引用任务的属性,这可能吗?

例如,如果我有这个结构:

rootBuild
 + includedBuild1
   + project1
   + project2
 + includedBuild2

我知道在build.gradle“project1”中我可以使用这个语句来输出我感兴趣的属性:

println shadowJar.archiveFile.get()

出于某种原因,我不明白,从这个项目的父 build.gradle ("includedBuild1") 我不能直接引用 'shadowJar' 插件任务,但我能够像这样获得我感兴趣的属性:

println tasks.getByPath(':project1:jar').archiveFile.get()

现在我想在根构建中引用这个相同的属性。但是,尝试这样的事情表明没有在引用任务上设置属性“archiveFile”(即输出“null”):

println gradle.includedBuild('includedBuild1').task(':project1:jar').properties['archiveFile']

有没有办法从复合构建的根目录引用我感兴趣的属性?

标签: gradle

解决方案


推荐阅读