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