小编Sam*_*amu的帖子

Gradle复制任务的包含和排除规范

我有一个包含一组内容的复制任务

    task test_init(dependsOn: generate_scripts){

    doFirst{
        mkdir (project.test_dir)
        mkdir (project.test_data_dir)
        mkdir (project.test_reports_dir)
        mkdir (project.test_logs_dir)
        mkdir (project.test_jasper_dir)
        mkdir (project.test_chart_dir)
    }

    doLast{
        copy
        {
            from"${test_script_hsqldb_nd}"
            into"${test_dir}"
        }
        copy
        {
            from"${test_script_create_constraints}"
            into"${test_dir}"
        }
        copy
        {
            from"${test_script_drop_constraints}"
            into"${test_dir}"
        }

        copy
        {
            from fileTree(dir: "${test_src_dir}",
            include:
            [
                '**/*.xml',
                '**/*.dtd',
                '**/*.csv',
                '**/*.mpp',
                '**/*.dic',
                '**/*.png',
                '**/*.properties'
            ])
            into"${build_classes_dir}"


        }
    }

//////THIS IS MY UGLY WORKAROUND////////////////////
    doLast{
        delete "${build_classes_dir}/com/XXXX/ppm/gantt"
        delete "${build_classes_dir}/com/XXXX/ppm/util"
        delete "${build_classes_dir}/com/XXXX/ppm/action/pageinformation"
    }
}
Run Code Online (Sandbox Code Playgroud)

它运行正常和花花公子,但是最后一个复制任务的"从"树中包含3个文件夹,这些文件夹不包含任何与包含相关的文件,因此在它们为空的任务之后.我想让他们完全被排除在任务之外,但我遇到了麻烦.目前我只是在最终的'doLast'块中删除它们,这似乎有点愚蠢.我试过了

exclude: "${test_src_dir}/com/XXXX/ppm/gantt",..**similar statements for other files**
Run Code Online (Sandbox Code Playgroud)

exclude: "${test_src_dir}/**/gantt"
Run Code Online (Sandbox Code Playgroud)

虽然我有一种感觉,'**'在这种情况下使用不正确.我很感激人们的任何投入.

java copy gradle

1
推荐指数
1
解决办法
7483
查看次数

标签 统计

copy ×1

gradle ×1

java ×1