我正在阅读很多关于spring dev工具的内容,我已经尝试过它们,它们看起来很酷。但是,我不明白它们是如何启用/禁用的。例如,只是添加依赖项,一切都神奇地起作用,但是如果我想将代码部署到生产中呢?开发工具是否仍在运行,我需要使用配置文件或其他东西禁用它们?
答案 0 :(得分:17)
不,它已自动关闭。
来自Spring Boot reference documentation:
完全运行时会自动禁用开发人员工具 打包应用程序如果您的应用程序是使用java -jar启动的 或者,如果它开始使用特殊的类加载器,那么它被考虑 一个“生产应用程序”。将依赖项标记为可选是a 阻止devtools传递的最佳实践 使用您的项目的其他模块。 Gradle不支持可选 开箱即用的依赖项,所以你可能想看看 同时支持插件。
和
如果您想确保devtools永远不会包含在生产中 build,您可以完全使用excludeDevtools构建属性 删除JAR。 Maven和Maven都支持该属性 Gradle插件。
答案 1 :(得分:2)
使用JAR打包的Spring Boot应用程序会自动排除它。但是,对于WAR打包的Spring Boot项目,事实并非如此。对于Maven Spring Boot项目,您必须将依赖项标记为“已提供”,并在pom.xml
中设置excludeDevTools = true。将devtools更改为“提供”
final BottomSheetDialog dialog = new BottomSheetDialog(YourActivity.this);
dialog.setContentView(R.layout.your_bottomsheet_layout);
dialog.setCanceledOnTouchOutside(false);
ImageButton btnClose = (ImageButton) dialog.findViewById(R.id.button_close);
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
从Maven Spring构建插件中排除devtools
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>provided</scope>
</dependency>
此处有更多信息:https://github.com/spring-projects/spring-boot/issues/7556
答案 2 :(得分:0)
spring-boot-devtools仅用于简化开发工作。在打包应用程序时,不包括此依赖项。无法用于创建可发货产品。