在Gradle中创建许多sourceSet

时间:2014-02-03 11:50:15

标签: java gradle pmd

我有一个项目,其中有不同的zip档案文件夹。我想提取它们并为每个进行一些检查。但希望报告分开。例如 pmd check。 因此,从每个zip文件中分离文件必须是在不同的sourseSets和调用时

gradle check

为每个目标生成带有支票的报告。

输入文件: 的 sources1.zip,sources2.zip,sources3.zip,sources4.zip 每个zip包含单独的项目。 例如:

src/main/java/sources1/Example.java
src/main/java/sources2/App.java

.... 运行检查时生成

build/reports/pmd/sources1SourceSet.html
build/reports/pmd/sources2SourceSet.html
build/reports/pmd/sources3SourceSet.html
build/reports/pmd/sources4SourceSet.html

所以我想根据拉链的名称声明这个不同的sourceSets而不是手动执行,但不知道如何。

sourceSets {
    sourcest1{
        java {
            srcDirs  file("...")
        }
    }
}

是否有另一种简单的方法来分隔检查而不为每个zip创建新的sourceSet?

1 个答案:

答案 0 :(得分:3)

一种启动方式可以为每个zip创建专用任务。这可以循环完成:

["source1", "source2", "source3"].each{ sourceName ->
    tasks.create("pmd${sourceName}", Pmd){
        reports.html.reportsDir = "$buildDir/reports/pmd${sourceName}"

        source = zipTree("file/to/$sourceName.zip")
        ...
    }
}

欢呼声