2 回答
TA贡献1843条经验 获得超7个赞
假设您正确设置了所有任务输入和输出,gradle 支持开箱即用的最新检查和任务跳过。查看最新检查(又名增量构建)
对于复制,您可以使用同步任务,该任务只会复制(或删除)与目标目录不同的 jar。
例如
task syncJars(type: Sync) {
allprojects { p ->
from p.tasks.withType(Jar)
}
into 'path/to/target/dir'
}
TA贡献1859条经验 获得超6个赞
因此,假设您的所有模块都是简单java模块,那么您的所有模块都将有一个jar任务(类型Jar)来构建相应模块的 JAR 文件。jar由于 Gradle 增量构建功能,每个任务只会在内容以任何方式更改(例如编译新文件)时执行。
您可以简单地doLast为这些任务中的每一个添加一个闭包,它将创建的文件复制到您的目录中,因为只有当且仅当任务被执行时,闭包才会被执行:
单个任务的示例:
jar {
doLast {
project.copy {
from archivePath
into 'path/to/my/location'
}
}
}
如果这适用于单个模块,我们可以尝试与@lance-java 所做的类似的方法:
allprojects { project ->
project.tasks.withType(Jar).all { jar ->
jar.doLast {
project.copy {
from jar.archivePath
into 'path/to/my/location'
}
}
}
}
添加回答
举报