gpt4 book ai didi

gradle - Gradle-作为 'jar'任务的一部分,将jar复制到另一个文件夹

转载 作者:行者123 更新时间:2023-12-03 04:14:10 24 4
gpt4 key购买 nike

我有一个多项目gradle设置。我想在重建jar的任何时候简单地复制任何项目的生成的jar文件,并认为这将在我的根项目的subprojects闭包中起作用:

task copyJarToGenerated(type: Copy) {
from jar
into "../my-generated-jars/"
}
copyJarToGenerated.mustRunAfter jar

但是,如果我运行任何子项目的“clean”任务然后执行“jar”任务,则我的jar照常在build / libs下生成,但不会被复制。

查看gradle输出,它仅运行compileJava,processResources,类,然后运行jar。它没有运行copyJarToGenerated。

最佳答案

mustRunAfter方法没有定义任务依赖性,它只是强制执行特定顺序。它基本上说:“如果两个任务都在构建中执行(无论出于何种原因),那么它们将以指定的顺序执行”。

因此,您需要自己定义任务依赖项:

jar.finalizedBy copyJarToGenerated

您还可以只添加 copyJarToGenerated作为生命周期任务 build的依赖项:
build.dependsOn copyJarToGenerated

由于您在任务的方法 jar中指定了任务 from,因此将其注册为任务输入,并因此隐式注册为任务依赖项。因此,您不再需要使用 mustRunAfter定义顺序。

您也可以考虑使用任务 destinationDirectoryjar属性,而不是完全创建一个新任务。

关于gradle - Gradle-作为 'jar'任务的一部分,将jar复制到另一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57480171/

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