java - Gradle - 复制多模块项目构建中所有更改模块的 jar

标签 java gradle

我有一个包含大约 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/

相关文章:

java - requestaudiofocus 的正确参数是什么?

java - 如何确定 2 个逻辑驱动器是否在 Java 中的同一个物理磁盘上

java - 如何使一个 JComponent 镜像另一个 JComponent?

android-studio - 如何创建考虑了构建风格的任务

java - 将 JVM args 传递给 SpringBoot bootRun Gradle 任务

java - JSP/servlet/IE 组合不会在 Enter 时提交表单详细信息

java - A* 搜索算法导致 StackOverFlowError

android - 如何在Android Studio中使用Gradle链接外部文件/文件夹(Eclipse的linkedresources功能)

java - 如何排除gradle中的测试依赖

android - 添加和调试外部项目