War 插件默認使用 GBK 編碼作爲代碼編碼。當咱們的代碼中有中文字符,而且代碼編碼爲非 GBK 編碼時會報錯編碼GBK的不可映射字符
此時咱們須要自定義項目編譯編碼css
//設置編碼 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
約定的項目結構也許並不能知足咱們項目的情景,咱們能夠經過自定義配置來使得 Gradle 不使用約定配置編譯項目:
咱們隨意變動一下上一篇使用Gradle第一次構建Web應用中的項目結構,變動後的結構以下:html
├─srcdiv │ └─com │ └─manning │ └─gia │ └─todo │ ├─model │ │ ToDoItem.java │ │ │ ├─repository │ │ InMemoryToDoRepository.java │ │ ToDoRepository.java │ │ │ └─web │ ToDoServlet.java │ ├─static │ └─css │ base.css │ bg.png │ └─webfiles ├─jsp │ index.jsp │ todo-list.jsp │ └─WEB-INF web.xml
咱們須要在 build.gradle 中添加以下配置:java
//改變項目默認結構 sourceSets { //設置源代碼所在目錄 main { java { srcDirs = ['srcdiv'] } } //設置測試代碼所在目錄 test { java { srcDirs = ['testdiv'] } } } //改變 Web 應用的源代碼目錄 webAppDirName = 'webfiles' //將靜態文件放到 static 路徑,可是須要打包到 WAR 文件根目錄下 war { from 'static' }
這樣咱們的項目就能夠正常編譯並打包爲可用 WAR 文件。 【編譯結果與使用Gradle第一次構建Web應用相同】
相關代碼web