W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
每個(gè) jar 或 war 對(duì)象有一個(gè) manifest 屬性做為Manifest單獨(dú)的實(shí)例, 當(dāng)生成存檔, 一個(gè)對(duì)應(yīng)MANIFEST.MF文件被寫(xiě)入到檔案中.
例22.15.MANIFEST.MF的定??制build.gradle
jar {
manifest {
attributes("Implementation-Title": "Gradle",
"Implementation-Version": version)
}
}
你可以創(chuàng)建一個(gè) manifest 的獨(dú)立實(shí)例. 您可以使用如共享 jar 之間的 manifest 的信息.
例22.16.創(chuàng)建一個(gè)manifest對(duì)象build.gradle
ext.sharedManifest = manifest {
attributes("Implementation-Title": "Gradle",
"Implementation-Version": version)
}
task fooJar(type: Jar) {
manifest = project.manifest {
from sharedManifest
}
}
您可以合并其他 manifest 到任何 Manifest 對(duì)象. 其它清單可能是通過(guò)文件路徑描述或著像上所述, 引用另一個(gè)Manifest對(duì)象.
例22.17.獨(dú)立的MANIFEST.MF一個(gè)特定的歸檔build.gradle
task barJar(type: Jar) {
manifest {
attributes key1: 'value1'
from sharedManifest, 'src/config/basemanifest.txt'
from('src/config/javabasemanifest.txt',
'src/config/libbasemanifest.txt') {
eachEntry { details ->
if (details.baseValue != details.mergeValue) {
details.value = baseValue
}
if (details.key == 'foo') {
details.exclude()
}
}
}
}
}
清單合并的順序與聲明語(yǔ)句的順序相同,如果基本清單和合并的清單都為相同的密鑰定義值,那么那么合并清單將會(huì)被合并,您可以通過(guò)添加在其中您可以使用一個(gè)ManifestMergeDetails實(shí)例為每個(gè)條目實(shí)體完全自定義的合并行為。聲明不會(huì)立即被來(lái)自觸發(fā)合并。這是延遲執(zhí)行的,要么產(chǎn)生jar時(shí),或要求寫(xiě)入effectiveManifest時(shí). 你可以很容易地寫(xiě)一個(gè)清單到磁盤(pán)。 例22.17.獨(dú)立的MANIFEST.MF一個(gè)特定的存檔 build.gradle
jar.manifest.writeTo("$buildDir/mymanifest.mf")
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: