我有大约100个模块的多模块构建。有没有一种方法可以只为更改的模块创建jar文件,然后将其复制到某个地方?
该任务应该是独立任务,无需修改现有的jar任务
最佳答案
因此,假设所有模块都是简单的java
模块,则所有模块都将具有一个jar
任务(类型Jar
),该任务将构建相应模块的JAR文件。由于Gradle增量构建功能,如果内容以任何方式更改(例如编译新文件),则仅会执行每个jar
任务。
您可以简单地向每个这些任务添加一个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/