查看原文
其他

Spring Boot 应用的新命令行界面:Just

Johan Janssen SpringForAll 2023-02-09
关注我,回复关键字“spring”
免费领取Spring学习资料

作者 | Johan Janssen、译者 | 马可薇、策划 | 丁晓昀

命令行工具 Just,无需任何配置即可自动加载有变动的源码、构建文件或 Docker 编排文件,提升 Spring Boot 应用构建时的 Java 开发体验,同时该项目也支持生成(原生)应用及(原生)Docker 镜像。

自由职业建筑师兼开发者 Maciej Walkowiak,在代码首次提交恰好一个月后,正式 发布 了 Just。这款被编译为原生二进制文件的 Spring Boot 应用借助 picocli 编写出功能丰富的命令行应用、Testcontainers 运行容器的 JUnit 测试、Sentry 监测问题错误,以及 JReleaser 发布项目。

Just 可以自动检测源码变动,并在自动重构后使用 Spring Boot 开发工具 重新加载应用。此外,修改pom.xmlbuild.gradle文件的构建都会导致应用暂停,并在构建文件刷新后重新启动。与 Spring Boot 开发工具不同,执行run子命令时 Just 会启动数据库、通过 Docker 编排 定义的服务等基础设施服务,执行just命令可以自动触发应用构建配置检测。Just 支持 Maven 和 Gradle 对应的封装器,也支持 Maven Daemon。仅需执行一次run子命令,Just 就能够处理好应用中的变更。

run子命令相比,build子命令执行时会根据构建目标正确地转换成对应的 Maven 或 Gradle 命令:

just build [--quick] [--skip-test] <buildTarget>

使用其中的quick选项会跳过测试、文档生成、格式检测以及静态分析。Just 提供jarnativeimage,以及原生native-image几种不同buildTarget选项以创建(原生)应用或(原生)Docker 镜像。另外,format子命令会根据项目配置中默认设置、Spring Java 格式、Spotless 配置规则格式化代码库。运行中进程可通过kill子命令终止,默认设置下端口 8080 上运行的进程会被终止,但端口号也可以通过-p 参数指定,-9参数则会强行执行kill子命令。

Just 可通过命令行执行,在 IntelliJ IDEA 则需要先通过init idea子命令新增运行配置,手动新增配置则可以在“运行”菜单栏的下拉选项中选择“修改配置”,新增“Shell 脚本”并重命名,“执行”选项选择“Script Text”,输入框“Script Text”中输入just run。取消勾选“命令行执行”后应用配置,“运行”菜单中就会显示行 shell 脚本的名称,我们也可以点击启动 Just 了。

在 MacOS 上安装 Just 可通过 Homebrew 执行:

brew install maciejwalkowiak/brew/just

在 Windows 上则通过 Scoop:

scoop bucket add maciejwalkowiak https://github.com/maciejwalkowiak/scoop-just.gitscoop install just

此外,也可以手动安装应用至 maxOS、Windows 或 Linux,以 Linux 命令为例:

curl -Lo just.zip https://github.com/maciejwalkowiak/just/releases/latest/download/just-0.12.0-linux-x86_64.zip && unzip just.zip && chmod +x just && sudo mv just /usr/local/bin/just && just help

其中的help子命令可用于验证安装结果。

Just 并非开源项目,其在 GitHub仓库 中仅包含二进制、发布说明以及问题追踪,并没有发布源码。目前项目仍处于 Alpha 测试阶段且可免费使用,所有的发布版本中都含有内置过期时间,过期后可能需要购买应用或安装最新版本。

关于 Just 更多信息可查看“开始使用”文档。

原文链接:

Just, a New CLI for Spring Boot Applications(https://www.infoq.com/news/2023/01/just-spring-boot-cli/)

相关阅读:

Spring Boot 3 和 Spring Framework 6 使用 Java 17 和 Jakarta EE 9,并支持基于 GraalVM 的原生 Java(https://www.infoq.cn/article/iCQ44j3XyAEl2FgHSPQy )

Spring Boot Migrator 简介 (https://www.infoq.cn/article/M8Tcely7QZhZYx4od2t1)

Dubbo 正式支持 Spring 6&Spring Boot 3(https://www.infoq.cn/article/LAvbFBiTzeXeqQ2CzAsi)



END



公司规定所有接口都用 POST请求,这是为什么?
Spring Cloud 优雅下线+灰度发布
Controller层代码这么写,简洁又优雅!
Spring Boot Admin 服务监控利器

关注后端面试那些事,回复【2022面经】
获取最新大厂Java面经
最后重要提示:高质量的技术交流群,限时免费开放,今年抱团最重要。想进群的,关注SpringForAll社区,回复关键词:加群,拉你进群。

点击这里领取2022大厂面经

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存