2014-02-24 64 views
10

我想對由distZip任務創建的可分發zip歸檔文件使用特定的名稱。我使用下面的代碼gradle distZip重命名文件夾

distZip { 
     archiveName baseName+'-'+version+'-bin.zip' 
} 

生成的壓縮文件包含'baseName +' - '+ version +' - bin'文件夾。

 

    jar -tvf baseName-version-bin.zip 
     0 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/ 
    81462 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/baseName-version.jar 
     0 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/lib/ 
    6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/a.jar 
    6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/b.jar 

所有的罐子放在這個目錄裏面。我只是想重命名檔案,並不打擾它的內容。我期望在zip中沒有'-bin'後綴的'baseName-version'目錄。

如何單獨更改檔案的名稱?

回答

1

我通過配置doLast來重命名構建的歸檔來實現它。

distZip { 
     doLast { 
      file("$destinationDir/$archiveName").renameTo("$destinationDir/"+baseName+'-'+version+'-bin.zip') 
     } 
    } 
6

可以按如下方式做到這一點:

distZip { 
    archiveName "$baseName-$version-bin.zip" 
} 

distributions { 
    main { 
     contents { 
      eachFile { 
       it.path = it.path.replace('-bin', '') 
      } 
     } 
    } 
} 

另一件事是,添加如-bin這樣的後綴更好的方法(並與maven兼容)將使用分類器屬性。我正在使用java-library-distribution插件,但我相信與分佈插件它應該工作相同(考慮你也使用maven插件)。然後,它是足夠的,你不喜歡它:

distZip { 
    classifier = 'bin' 
} 

distributions { 
    main { 
     baseName = archivesBaseName 
     contents { 
      eachFile { 
       it.path = it.path.replace("-$distZip.classifier", '') 
      } 
     } 
    } 
} 
0
apply plugin: 'application' 

當使用「應用程序」的插件,這是怎麼改變的文件名。

distributions { 
    main { 
     baseName = "watch" 
     version = "" 
     contents { 
      from('.') { 
       include '*.yml' 
       into "bin" 
      } 
     } 
    } 
} 

這個生成的文件 'watch.tar' & 'watch.zip'