[英]gradle exclude external resource folder from all jars
將gradle 5.4與netbeans項目中外部文件夾的項目依賴項一起使用。
外部文件夾包含只能由該netbeans項目創建的資源,例如圖像,xml和自定義對象。 然后,這些外部資產用於創建二進制文件,該文件由該netbeans項目打包到一個單獨的jar中。
這些相同的外部資源也將在運行時期間用於gradle項目中的開發。 雖然我需要在gradle項目中進行開發的資源,但是使用task build命令時,由於任何原因,我不需要或不希望它們被包含在任何jar中,因為只需要分發二進制文件即可。
如何從gradle項目中的任何和所有jar文件中排除外部資源,但如何將它們用於classPath,以便我可以運行項目?
一些失敗的代碼示例。
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'idea'
sourceSets {
main {
resources {
srcDir '../ExternalResourceFolder/assets'
}
}
}
jar {
exclude('../ExternalResourceFolder/assets/**')
}
dependencies {
runtimeOnly files('../ExternalResourceFolder/assets')
}
jar {
exclude('../ExternalResourceFolder/assets/**')
}
distributions {
main {
contents {
exclude '../ExternalResourceFolder/assets/**'
}
}
}
嘗試了更多類似添加到classPath和exclude的操作,但是添加它們只會很混亂。 從sourceSet更改為依賴關系只會使問題從“ build / lib”文件夾移至“ build / distributions”文件夾。
最后必須排除每種文件類型。
sourceSets {
main {
resources {
srcDir '.'
exclude ('**/*.j3odata','**/*.mesh','**/*.skeleton',\
'**/*.mesh.xml','**/*.skeleton.xml','**/*.scene',\
'**/*.material','**/*.obj','**/*.mtl','**/*.3ds',\
'**/*.dae','**/*.blend','**/*.blend*[0-9]','**/*.bin',\
'**/*.gltf')
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.