gradle从文件夹创建多个war文件

时间:2017-03-21 21:20:00

标签: java gradle build.gradle war

My Gradle项目不包含任何类或其他配置。它包含一个名为ExternalLibs的文件夹,其中包含其他文件夹。 我需要为ExternalLibs中的每个文件夹创建一个war文件,并将其放在lib文件夹中。

感谢您的帮助。

文件夹结构:

 Project Root
   |-- ExternalLibs
         |-- analyst
         |-- storageService
         |-- retrievalService

Exepcted output:

 Project Root
   |-- lib
        |-- analyst.war
        |-- storageservice.war
        |-- retrievalService.war

1 个答案:

答案 0 :(得分:0)

您可以使用Formula parse error.类型的任务,因为Zip存档是War,具有花哨的扩展名。您必须按Zip创建任务,但您可以通过动态创建任务来自动执行该任务:

War

要一次运行所有任务,您可以创建一个取决于所有任务的任务:

List folders = new File(projectDir, "ExternalLibs").listFiles();
folders.each { dir ->
    task "zip${dir.name}"(type: Zip) {
        from dir
        include '**/*'
        destinationDir new File("$projectDir/lib")
        archiveName "${dir.name}.war"
    }
}