發行外掛程式有助於組建用於發行專案的檔案。發行檔案通常包含可執行應用程式和其他支援檔案,例如文件。
用法
若要使用發行外掛程式,請在組建指令碼中加入下列內容
plugins {
distribution
}
plugins {
id 'distribution'
}
外掛程式會新增一個名為 distributions
的延伸模組,類型為 DistributionContainer,至專案。它也會在 distributions 容器延伸模組中建立一個名為 main
的單一發行。如果組建只產生一個發行,您只需要設定此發行(或使用預設值)。
您可以執行 gradle distZip
將主要發行封裝為 ZIP,或執行 gradle distTar
建立 TAR 檔案。若要組建這兩種類型的檔案,只需執行 gradle assembleDist
。檔案會建立在 layout.buildDirectory.dir("distributions/${project.name}-${project.version}.«ext»")
。
您可以執行 gradle installDist
將未壓縮的發行組建至 layout.buildDirectory.dir("install/${project.name}")
。
任務
Distribution 外掛程式會新增數個任務至您的專案,如下所示。
對於您新增至專案的每個額外發行,Distribution 外掛程式會新增下列任務,其中 distributionName 來自 Distribution.getName()
下列範例建立一個 custom
發行,這會導致新增四個額外的任務至專案:customDistZip
、customDistTar
、assembleCustomDist
和 installCustomDist
distributions {
create("custom") {
// configure custom distribution
}
}
distributions {
custom {
// configure custom distribution
}
}
假設專案名稱為 myproject
,版本為 1.2
,執行 gradle customDistZip
會產生一個名為 myproject-custom-1.2.zip
的 ZIP 檔案。
執行 gradle installCustomDist
會將發行內容安裝至 layout.buildDirectory.dir("install/custom")
。
發行內容
src/$distribution.name/dist
目錄中的所有檔案都會自動包含在發行版中。您可以透過設定容器中 Distribution 物件來新增其他檔案。
distributions {
main {
distributionBaseName = "someName"
distributionClassifier = "classifier"
contents {
from("src/readme")
}
}
}
distributions {
main {
distributionBaseName = 'someName'
distributionClassifier = 'classifier'
contents {
from 'src/readme'
}
}
}
在上述範例中,src/readme
目錄的內容會包含在發行版中(以及預設新增的 src/main/dist
目錄中的檔案)。
distributionBaseName
和 distributionClassifier
屬性也已變更。這將導致發行版檔案以不同的名稱建立。
發佈
可以使用 Ivy 發佈外掛程式 或 Maven 發佈外掛程式 來發佈發行版。
使用 Ivy/Maven 發佈外掛程式
若要使用 Ivy 發佈外掛程式 將發行版發佈到 Ivy 儲存庫,請將其中一個或兩個檔案任務新增到 IvyPublication。下列範例示範如何將 main
發行版的 ZIP 檔案和 custom
發行版的 TAR 檔案新增到 myDistribution
發佈中
plugins {
`ivy-publish`
}
publishing {
publications {
create<IvyPublication>("myDistribution") {
artifact(tasks.distZip.get())
artifact(tasks["customDistTar"])
}
}
}
plugins {
id 'ivy-publish'
}
publishing {
publications {
myDistribution(IvyPublication) {
artifact distZip
artifact customDistTar
}
}
}
類似地,若要使用 Maven 發佈外掛程式 將發行版發佈到 Maven 儲存庫,請將其中一個或兩個檔案任務新增到 MavenPublication,如下所示
plugins {
`maven-publish`
}
publishing {
publications {
create<MavenPublication>("myDistribution") {
artifact(tasks.distZip)
artifact(tasks["customDistTar"])
}
}
}
plugins {
id 'maven-publish'
}
publishing {
publications {
myDistribution(MavenPublication) {
artifact distZip
artifact customDistTar
}
}
}