我有一个包含大约 100 个模块的多模块构建。有没有办法只为更改的模块创建 jar 文件并将它们复制到某个地方?
该任务应该是一个独立的任务,无需修改现有的 jar 任务
最佳答案
所以,假设你所有的模块都很简单 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'
}
}
}
}
关于java - Gradle - 复制多模块项目构建中所有更改模块的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070874/