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

时间:2016-05-05 06:34:32

标签: gradle groovy source-sets

我试图将 Project1 中已编译的 .class 文件包含到 Project2 的jar中,因为我的项目结构需要它要完成。为此,我在 Project2 build.gradle 中写道:

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

成功完成了我必须做的事情。 但是,我现在想要过滤一些基于路径和/或某种模式添加的类。例如,要仅包含委托文件,我尝试了这个:

jar {
    from project(':Project1').sourceSets.main.output.classesDir {
        include '**/*Delegate*.class'
    }
}

但不幸的是它不起作用。有没有办法在Gradle / Groovy中实现这个目标?

2 个答案:

答案 0 :(得分:0)

使用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个参数(因此,使用逗号)。

答案 1 :(得分:0)

感谢Michael

虽然我也得到了答案,但我只是错过了一个parantheses。正确和有效的代码如下:

jar {
    from (project(':Project1').sourceSets.main.output.classesDir) {
        include '**/*Delegate*.class'
    }
}