按类型收集依赖项过滤

时间:2015-04-27 22:25:43

标签: java jar gradle copy dependencies

我有一个包含一些Java子项目的多项目设置。 我希望有一个顶级任务来分发整个批次,例如“buildAll”,它为每个子项目收集每个JAR,包括所有第三方依赖项。到目前为止我所拥有的是:

task buildAll(type: Copy) {
    destinationDir = file("$rootProject.buildDir/")    

    project.subprojects.each { p ->

        from(p.jar) { 
            into("projects/${p.name}")
        }

        from (p.configurations.runtime) {
            exclude "**/project/**" //<- does not work
            into("projects/${p.name}/lib")
        }
    }
}

这很好用,它创建了一个文件夹,其中包含“build / projects”文件夹下每个项目的名称,并包含所有JAR(项目和第三方),但有些子项目有项目依赖项< / strong>之间,例如项目A依赖于项目B.因此,此任务将获得Project B JAR并将其放在“projectA / lib”文件夹下。

-- build/
------ projects/
----------- projectA/
---------------- projectA.jar
---------------- lib/
------------------- guava.jar
------------------- projectB.jar <-- I don't want it here
----------- projectB/
---------------- projectB.jar
---------------- lib/

有没有办法过滤这个?

我尝试过使用exclude或include,但似乎Gradle忽略它们或者对象正在检查不是预期的。

0 个答案:

没有答案