gpt4 book ai didi

gradle - 如何将执行的gradle脚本的执行延迟/延迟到构建脚本的最后一个

转载 作者:行者123 更新时间:2023-12-03 03:11:21 29 4
gpt4 key购买 nike

我有一个Gradle构建脚本,如下所示:
build.gradle

apply plugin: java
apply from: some-other-script.gradle


project.ext {
distDir = "${xxx}"
buildDir = "${yyy}"
testLibDir = "${zzzz}"
webArtifactFile = "directory/aaaa.war"
}

//code to clean, build code. etc.

其他脚本具有:
some-other-script.gradle
//code to perform some common-tasks;
//Here I want to access the property exported by build.gradle

//like:
def file = webArtifactFile;

some code for that file.

但是,由于我在顶部应用了 some-other-script.gradle,因此我无法获取 build.gradle file导出的属性

但是如果我在 apply from: some-other-build-script.gradle末尾的 build.gradle像这样:
apply plugin: java


project.ext {
distDir = "${xxx}"
buildDir = "${yyy}"
testLibDir = "${zzzz}"
webArtifactFile = "directory/aaaa.war"
}

//code to clean, build code. etc.

apply from: some-other-script.gradle

然后,我可以访问在构建脚本中导出的所有属性(但这使代码不可读)。

所以我的问题是:

如何将应用的Gradle脚本的执行延迟/推迟到最后一个生成脚本?

PS。我是新手,所以对专家来说这可能是一个非常疯狂的问题,但我仍然在寻求帮助。

希望这里的专家会帮助我。

最佳答案

检查this Gradle documentation:在您的情况下可以使用项目评估侦听器。

您有两种选择:

1)在主要afterEvaluate脚本的build.gradle侦听器中应用脚本插件:

build.gradle

apply plugin: java
afterEvaluate {
// some-other-script.gradle script will have access to properties exported by main build script
apply from: some-other-script.gradle
}

2)在脚本插件本身中实现 afterEvaluate侦听器逻辑:

build.gradle
apply plugin: java
apply from: some-other-script.gradle

另一个脚本.gradle
afterEvaluate {
def file = webArtifactFile;

// some code for that file.
}

解决方案2可能更好,因为它可以使您的主要 build.gradle保持整洁。

关于gradle - 如何将执行的gradle脚本的执行延迟/延迟到构建脚本的最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56438045/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com