gradle - 从已编译的源集中过滤类文件以添加到 Gradle/Groovy 的 JAR 中

标签 gradle groovy source-sets

我正在尝试包含已编译的 .class 来自 的文件项目1 放入 jar 中以获得项目2 因为我的项目结构需要它来完成。为此,在 build.gradle 对于 项目2 , 我写 :

jar {
    from project(':Project1').sourceSets.main.output.classesDir
}

哪个成功地完成了我必须做的事情。 但是,我现在想过滤一些基于路径和/或某种模式添加的类。例如,要仅包含委托(delegate)文件,我尝试了以下操作:
jar {
    from project(':Project1').sourceSets.main.output.classesDir {
        include '**/*Delegate*.class'
    }
}

但不幸的是,它不起作用。有没有办法在 Gradle/Groovy 中实现这一点?

最佳答案

使用 Gradle 2.12,以下对我有用(这是项目 2 的 build.gradle):

task myBuild(type: Jar) {
    baseName "myjar"
    from project(':Project1').sourceSets.main.output.classesDir, 
         { include "**/*Delegate*.*" } 
}

来自 the doc for Jar.from ,请注意它需要 2 个参数(因此,使用逗号)。

关于gradle - 从已编译的源集中过滤类文件以添加到 Gradle/Groovy 的 JAR 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37043960/

相关文章:

gradle - 运行时出现 NoClassDefFoundError

oracle - ORA-01882:在Liquibase Gradle插件中找不到时区区域

java - spock 测试中的对象比较失败

java - Gradle:自定义源设置为主要和测试的依赖项

gradle - 如何在 Mac 上使用/启动 gradle 守护进程?

android - 更新到版本 '4.10.1'/'4.10.2' 后 Gradle 同步失败

java - 判断groovy.sql中Oracle查询结果的数据类型

rest - 在 Grails 中发送带有 JSON 负载的 HTTP POST 的最佳方式

gradle - gradle删除主要源集