Gradle創(chuàng)建歸檔文件

2020-07-24 16:02 更新

一個項目可以有很多 JAR 文件,你可以向項目中添加 WAR , ZIP 和 TAR 文檔,使用歸檔任務(wù)可以創(chuàng)建這些文檔: Zip , Tar , Jar , War 和Ear. 它門都以同樣的機制工作.

例 15.19 創(chuàng)建一個 ZIP 文檔

build.gradle

apply plugin: 'java'

task zip(type: Zip) {
    from 'src/dist'
    into('libs') {
        from configurations.runtime
    }
}

所有的歸檔任務(wù)的工作機制和復(fù)制任務(wù)相同,它們都實現(xiàn)了 CopySpec 接口,和 Copy 任務(wù)一樣,使用from() 方法指定輸入文件,可以選擇性的使用 into() 方法指定什么時候結(jié)束.你還可以過濾文件內(nèi)容,重命名文件等等,就如同使用復(fù)制規(guī)則一樣.

重命名文檔

projectName-vsersion.type 格式可以被用來生成文檔名,例如:

例 15.20 創(chuàng)建壓縮文檔

build.gradle

apply plugin: 'java'

version = 1.0

task myZip(type: Zip) {
    from 'somedir'
}

println myZip.archiveName
println relativePath(myZip.destinationDir)
println relativePath(myZip.archivePath)

使用 gradle -q myZip 命令進行輸出:

> gradle -q myZip
zipProject-1.0.zip
build/distributions
build/distributions/zipProject-1.0.zip

上面例子使用一個名為 myZip的 Zip 歸檔任務(wù)生成名稱為 zipProject-1.0.zip 的 ZIP 文檔,區(qū)分文檔任務(wù)名和最終生成的文檔名非常的重要

可以通過設(shè)置項目屬性 archivesBaseName 的值來 修改生成文檔的默認(rèn)名.當(dāng)然,文檔的名稱也可以通過其他方法隨時更改.

歸檔任務(wù)中有些屬性可以配置,如表 15.1 所示:

表 15.1 歸檔任務(wù)-屬性名

屬性名類型默認(rèn)值描述
archiveNameStringbaseName-appendix-version-classifier.extension,如果其中任何一個都是空的,則不添加名稱歸檔文件的基本文件名
archivePathFiledestinationDir/archiveName生成歸檔文件的絕對路徑。
destinationDirFile取決于文檔類型, JAR 和 WAR 使用project.buildDir/distributions. project.buildDir/libraries.ZIP 和 TAR歸檔文件的目錄
baseNameStringproject.name歸檔文件名的基礎(chǔ)部分。
appendixStringnull歸檔文件名的附加部分。
versionStringproject.version歸檔文件名的版本部分。
classifierStringnull歸檔文件名的分類部分
extensionString取決于文檔類型和壓縮類型: zip, jar, war, tar, tgz 或者 tbz2.歸檔文件的擴展名

例 15.21 配置歸檔文件-自定義文檔名

build.gradle

apply plugin: 'java'
version = 1.0

task myZip(type: Zip) {
    from 'somedir'
    baseName = 'customName'
}

println myZip.archiveName

使用 gradle -q myZip 命令進行輸出:

> gradle -q myZip
customName-1.0.zip

更多配置:

例 15.22 配置歸檔任務(wù)- 附加其他后綴

build.gradle

apply plugin: 'java'
archivesBaseName = 'gradle'
version = 1.0

task myZip(type: Zip) {
    appendix = 'wrapper'
    classifier = 'src'
    from 'somedir'
}

println myZip.archiveName

使用 gradle -q myZip 命令進行輸出:

> gradle -q myZip
gradle-wrapper-1.0-src.zip

多個文檔共享內(nèi)容

你可以使用 Project.copySpec() 在不用歸檔文件間共享內(nèi)容. 如果你想發(fā)布一個文檔,然后在另一個項目中使用,這部分將在第 53 章 發(fā)布文檔 中講述.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號