2015-11-19 93 views
0

我有一個Java webapp(WAR),它有幾個依賴關係。其中兩個包含戰爭中暴露的資源(同名)。WAR中的資源加載順序

所以我的依賴關係樹看起來像

dependency tree

我的問題是,從core.jar添加依賴性custom.css使用,如果我訪問的index.html

是否有辦法強制使用custom.css?我不能修改core.jar添加

感謝, 邁克爾

環境:Maven的3,爪哇1.8,Tomcat的8

回答

0

您可以提取並投入必要的資源投入到自身myWAR。

0

只要它被類加載器加載(這很可能在你的情況下),你被保證不能強制排序。

您也許能夠解開core.jar依賴和排除custom.css文件,例如在Building a WAR project with unzipped JAR dependency?

在這種情況下指定的,你會排除core.jar依賴於maven-war-plugin(見https://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html),並配置maven-dependency-plugin解壓core.jartarget/classes,同時排除META-INF/resources/custom.css

0

有沒有保證,以JAR文件中WEB-INF/lib相對順序,但它保證WEB-INF/classes將領先於所有在classpath中WEB-INF/lib/*.jar文件。因此,如果您可以在最終的WAR文件中將custom.css轉換爲WEB-INF/classes/META-INF/resources,那麼它將優先於ClassLoader.getResource中的lib JAR文件中的文件。