我已經在爆炸戰爭文件中使用碼頭設置了gradle項目,並與watch插件一起使用。對於任何java依賴項,如果源被修改,手錶插件將啓動'jar'任務和一個複製任務,將生成的jar放入分解的war文件中。使用碼頭的自動重新加載,這個新的罐子被拿起。一切都很好。jettyRun爆炸戰爭在複製任務中寫入問題
我對包含javascript和css源文件的模塊有類似的看法。修改後,文件將被構建(使用gulp插件進行concat/minify)並執行復制任務以將它們複製到war文件中。但是,在試圖複製.js和.css文件時,由於jetty當前正在使用這些文件,因此我得到由只讀問題導致的異常。
無論如何要解決這個問題,而不必停止/啓動碼頭?以下是我的配置/任務的相關部分。
碼頭配置如下:
jettyRun {
httpPort = 8080
contextPath = project.name
scanIntervalSeconds = 1
reload = "automatic"
webAppSourceDirectory = file(EXPLODED_DIR)
}
手錶配置:
watch {
clientwatch {
files fileTree(CLIENT_SRC_DIR).include('**/*.js', '**/*.css')
tasks ':client_module:assemble', 'copyClientFiles'
}
}
副本任務:
task copyClientFiles(type: Copy) {
from fileTree(CLIENT_BUILD_DIR).include("*.min.js", "*.min.css")
into EXPLODED_DIR
}
copyClientFiles.inputs.dir CLIENT_BUILD_DIR
copyClientFiles.outputs.dir EXPLODED_DIR