簡體   English   中英

gradle從所有jar中排除外部資源文件夾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM