[英]WAR File contains static resources twice after Gradle WAR build
過去,Web應用程序的靜態資源始終位於src/main/webapp
。
最近, Spring Initializr
為我創建了一個新的項目布局,因此發現資源應位於src/main/resources/static
。 我認為這是新標准。
由於此更改,這些項目現在也可以立即在IntelliJ下運行,對於Eclipse,我在build.gradle
文件中進行了這種修改:
project.webAppDirName = 'src/main/resources/static'
eclipse {
wtp {
component {
contextPath = '/'
deployName = 'myapp'
}
facet {
//facet name: 'jst.web', version: '3.1'
file {
whenMerged {
facets.each { f ->
if (f.name == 'jst.web') {
f.version = '3.1'
}
}
}
}
}
}
}
現在,我今天已經構建了一個WAR,必須意識到靜態資源是其中的兩倍。
發生某種魔術(自動)。
有一些東西將我的靜態資源復制到WAR的根目錄中,就像它們在webapp
下一樣。 在WEB-INF/classes/static
下也可以找到相同的資源
我假設靜態資源在WAR根目錄中的正確位置。 在Gradle
中避免WEB-INF/classes/static
下的資源的正確方法是什么?
默認情況下,來自src/main/resources
的內容被復制到WEB-INF/classes
。 設置project.webAppDirName會創建一個附加的sourceSet
,將其復制到war
文件(的根文件夾) war
。
要從默認復制操作中排除某些文件,可以像這樣從sourceSet
排除文件:
war {
rootSpec.exclude('**/static/**')
}
在此處記錄:
如何從最終的WAR中排除src / main / resources文件?
在Gradle War中如何排除目錄及其內容
針對默認位置或webAppDirName位置使用WAR插件時,如何從WAR中排除文件
使用Gradle將錯誤的文件添加到WAR包中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.