1
我創建了一個jar文件,由多個jar創建(我在此例中使用了Gradle Shadow插件)。處理陰影(超級/胖)jar文件中的重複條目
原來,該文件包含/META-INF
中的重複文件。它們大多是原始jar文件中的多個license.txt
,但其中一些是我感興趣的Spring工廠。
在Maven或Gradle中使用各種類似fatjar的工具時,此行爲似乎很常見,它看起來很像就像它不被任何手段所禁止。
我檢查了java.lang.ClassLoader#getResources
將返回這些條目相同的URL列表,例如:
jar:file:/C:/temp/myJar.jar!/META-INF/spring.factories
jar:file:/C:/temp/myJar.jar!/META-INF/spring.factories
所以一旦我得到的網址,有沒有辦法通過編程獲取所有重複文件的內容。
可以Java處理這樣的重複文件,不知何故?
或者,也許更一般,從規格的角度來看,它是一個有效和受支持的情況,在裏面有一個帶有重複文件的jar嗎?我檢查了Jar File Specification,它也沒給我提供線索。