自定義配置
War 插件默認使用 GBK 編碼做爲代碼編碼。當我們的代碼中有中文字符,並且代碼編碼爲非 GBK 編碼時會報錯編碼GBK的不可映射字符
此時我們需要自定義項目編譯編碼
“`groovy
//設置編碼
[compileJava, compileTestJava].options.encoding = ‘UTF-8’
約定的項目結構也許並不能滿足我們項目的情景,我們可以通過自定義配置來使得 Gradle 不使用約定配置編譯項目:
我們隨意變更一下上一篇[使用Gradle第一次構建Web應用](https://coderknock.com/blog/2017/03/13/%E4%BD%BF%E7%94%A8Gradle%E7%AC%AC%E4%B8%80%E6%AC%A1%E6%9E%84%E5%BB%BAWeb%E5%BA%94%E7%94%A8.html)中的項目結構,變更後的結構如下:
```bash
├─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
<div class="se-preview-section-delimiter"></div>
我們需要在 build.gradle 中添加如下配置:
//改變項目默認結構
sourceSets {
//設置源代碼所在目錄
main {
java {
srcDirs = ['srcdiv']
}
}
//設置測試代碼所在目錄
test {
java {
srcDirs = ['testdiv']
}
}
}
//改變 Web 應用的源代碼目錄
webAppDirName = 'webfiles'
//將靜態文件放到 static 路徑,但是需要打包到 WAR 文件根目錄下
war {
from 'static'
}
這樣我們的項目就可以正常編譯並打包爲可用 WAR 文件。
我們需要在 build.gradle 中添加如下配置:
```groovy
//改變項目默認結構
sourceSets {
//設置源代碼所在目錄
main {
java {
srcDirs = ['srcdiv']
}
}
//設置測試代碼所在目錄
test {
java {
srcDirs = ['testdiv']
}
}
}
//改變 Web 應用的源代碼目錄
webAppDirName = 'webfiles'
//將靜態文件放到 static 路徑,但是需要打包到 WAR 文件根目錄下
war {
from 'static'
}
這樣我們的項目就可以正常編譯並打包爲可用 WAR 文件。 【編譯結果與使用Gradle第一次構建Web應用相同】
相關代碼