# 20. 开发者工具

Spring Boot包含了一些额外的工具集，用于提升Spring Boot应用的开发体验。`spring-boot-devtools`模块可以included到任何模块中，以提供development-time特性，你只需将该模块的依赖添加到构建中：

**Maven**

```markup
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
```

**Gradle**

```
dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}
```

**注** 在运行一个完整的，打包过的应用时，开发者工具（devtools）会被自动禁用。如果应用使用`java -jar`或特殊的类加载器启动，都会被认为是一个产品级的应用（production application），从而禁用开发者工具。为了防止devtools传递到项目中的其他模块，设置该依赖级别为optional是个不错的实践。不过Gradle不支持`optional`依赖，所以你可能要了解下[propdeps-plugin](https://github.com/spring-projects/gradle-plugins/tree/master/propdeps-plugin)。

**注** 重新打包的归档文件默认不包含开发者工具。如果你想使用某些远程的开发者工具特性，你需要禁用`excludeDevtools`构建属性。Maven和Gradle都支持该属性。
