2017-03-21 29 views
1

My Gradleプロジェクトにクラスやその他の設定が含まれていません。他のフォルダを含むExternalLibsというフォルダが含まれています。 ExternalLibsにあるフォルダごとにwarファイルを作成し、libフォルダに配置する必要があります。gradleフォルダから複数のwarファイルを作成する

ありがとうございました。

フォルダ構造:

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

Exepcted出力:

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

問題の答えを見つけましたか? – sm4

答えて

0

Warアーカイブは派手な拡張子を持つZipあるので、あなたは、タイプZipのタスクを使用することができます。あなたはWarごとにタスクを作成する必要がありますが、動的にタスクを作成することによって、それを自動化することができます。

task allZips { } 
allZips.dependsOn tasks.withType(Zip) 
:あなたがそれらのすべてに依存タスクを作成することができ、

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" 
    } 
} 

が一度にすべてのタスクを実行するには

関連する問題