Gradle打包可直接运行的spring-boot应用

本文介绍了如何在Spring Boot项目中集成Docker。通过修改build.gradle文件并添加必要的依赖及插件,可以实现项目的自动打包。此外,还提供了在Windows环境下生成Docker镜像的方法。
参考资料: https://spring.io/guides/gs/spring-boot-docker/

首先,修改build.gradle,在dependencies中添加gradle-docker:
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
[b]classpath('se.transmode.gradle:gradle-docker:1.2')[/b]
}

再添加插件:
    apply plugin: 'spring-boot'
[b]apply plugin: 'docker'[/b]


在该项目中的命令行中,执行如下命令:
gradle build

即在该工程下的build/lib目录下生成XXX.jar,XXX.jar.original两个文件。其中original后缀的文件,是gradle jar生成的只包含该项目的jar包。 没有original后缀的,为包括了各种依赖包的,可直接java -jar执行的jar包,该包的目录结构如下:
[img]
[img]http://dl2.iteye.com/upload/attachment/0119/7853/b878cc55-6c7b-39af-8391-738c1410ed15.png[/img]
[/img]

如果需要直接生成docker镜像,可以参考链接中的说明,在build.gradle中添加buidDocker相关的配置。因为我在windows下运行,因此并没有执行该命令,而是先打包JAR。再把JAR包和dockerfile放到测试服上进行打包,并测试。
要在一个使用 Gradle 构建的 Spring Boot 项目中集成 `spring-boot-devtools`,可以通过以下方式完成配置和使用。 ### 添加依赖项 首先,在项目的 `build.gradle` 文件中添加 `spring-boot-devtools` 作为开发时使用的依赖。由于它主要用于开发阶段,因此通常建议将其放在 `developmentOnly` 配置中以避免在生产环境中启用不必要的功能: ```groovy dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' } ``` 这样可以确保 `spring-boot-devtools` 只在开发过程中生效,而在最终打包部署时不会包含进去[^2]。 ### 自动重启功能 `spring-boot-devtools` 提供了自动重启的功能,当类路径上的文件发生变化时(如代码更改),应用程序会自动重新启动。为了启用此功能,除了添加上述依赖外,不需要额外的配置,因为它是默认开启的。不过,如果你希望更精细地控制触发自动重启的行为,可以在 `application.properties` 或 `application.yml` 中进行相关设置: ```properties spring.devtools.restart.enabled=true ``` 此外,还可以指定一个触发器文件来控制何时触发重启,这在某些特定场景下非常有用,例如与 IDE 的保存操作结合使用: ```properties spring.devtools.restart.trigger-file=.reloadtrigger ``` 该配置意味着只有当 `.reloadtrigger` 文件被修改时才会触发重启[^4]。 ### 缓存禁用 为了提高性能,Spring Boot 使用缓存机制来存储模板和其他资源。然而,在开发过程中,这种缓存可能会导致旧数据被重复使用,因此推荐在开发阶段禁用这些缓存。对于 Thymeleaf 模板引擎,可以通过如下配置实现: ```properties spring.thymeleaf.cache=false ``` 类似地,其他支持缓存的组件也应该相应地调整其配置以适应开发需求[^3]。 ### 远程调试和支持 虽然 `spring-boot-devtools` 主要针对本地开发环境设计,但它同样支持远程调试等功能。需要注意的是,启用远程支持可能带来安全风险,因此只应在受信任的网络环境中或者启用了 SSL 保护的情况下启用: ```properties spring.devtools.remote.debug.enabled=true spring.devtools.remote.restart.enabled=true ``` 请记住,永远不要在生产环境中启用这些特性。 ### 构建包含前端资源的 JAR 包 如果项目中包含了前端资源,并且希望通过 Gradle 构建命令生成包含这些资源的 JAR 包,则需要确保构建脚本正确处理了静态资源的位置。按照惯例,将前端资源放置于 `src/main/resources/static` 目录下即可被正确打包进 JAR 文件中。执行以下 Gradle 命令进行构建: ```bash ./gradlew assemble ``` 这样生成的 JAR 将包括所有必要的前端资源[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值