递归抓取文件夹中的JAR文件

时间:2018-09-16 17:45:03

标签: gradle build.gradle

如何在一个简单的JAR中JAR一个文件夹及其所有子目录和文件? 我尝试了类似的方法,但它不起作用。

task jarVrCore(type: Jar, description: 'JARs core part of the project') {
    doLast {
        archiveName = "vasasdasasdasd"
        from "${projectDir}"
        println "${vrCoreSourceDir}"
        destinationDir = file("${dirTmpLibsVr4}")
    }
}

我总是只用清单来得到一个空的JAR。

1 个答案:

答案 0 :(得分:2)

问题在于您所有的任务配置都为时已晚。您正在使用doLast闭包,该闭包在实际任务操作之后执行(对于Jar任务,是.jar文件的创建)。 >

通常,所有任务配置都直接在任务配置闭包内部完成:

task jarVrCore(type: Jar, description: 'JARs core part of the project') {
    archiveName = "vasasdasasdasd"
    from "${projectDir}"
    println "${vrCoreSourceDir}"
    destinationDir = file("${dirTmpLibsVr4}")
}

如果在执行其他任务后需要应用配置,请使用doFirst闭包。

请注意,使用上面的示例,println语句将在配置阶段中执行,因此,在每次Gradle调用中,是执行任务jarVrCore还是执行任务csh不是。