簡體   English   中英

Gradle WAR構建后,WAR文件包含兩次靜態資源

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

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