基于Maven 运行OpenRewrite的快速示例

news2024/10/12 8:24:29

本篇介绍一个基于Maven 运行OpenRewrite 的快速示例,展示了如何在Maven项目中使用OpenRewrite 进行代码重构。

本篇达成的效果是使用OpenRewrite 对源码自动格式化。

达成效果期望

项目中有一个类AutoFormatDemo ,类的代码如下

public class AutoFormatDemo {public static void main(String[]args){System.out.println("Hello, World!");}}

使用OpenRewrite 自动格式化上面的代码。

步骤

  1. 在Maven项目中已经添加OpenRewrite Maven插件, 具体是在pom.xml 的<plugins> 节点添加插件
<plugin>
  <groupId>org.openrewrite.maven</groupId>
  <artifactId>rewrite-maven-plugin</artifactId>
  <version>5.34.1</version>
</plugin>
  • 这里的version 可以配置使用最新的版本

命令行运行mvn rewrite:discover 可以查看所有可执行的配方列表, 执行的效果如下:

在这里插入图片描述

  1. 激活配方

在运行任何配方之前,需要更新插件配置以将所需配方标记为“active”。
OpenRewrite 官方提供了代码格式化的配方 org.openrewrite.java.format.AutoFormat。关于该配方的详细介绍可以参考:
OpenRewrite配方之代码格式化——org.openrewrite.java.format.AutoFormat

要激活这个配方,可以在pom.xml 中将插件的配置修改为:

<plugin>
  <groupId>org.openrewrite.maven</groupId>
  <artifactId>rewrite-maven-plugin</artifactId>
  <version>5.34.1</version>
  <configuration>
    <activeRecipes>
      <recipe>org.openrewrite.java.format.AutoFormat</recipe>
    </activeRecipes>
  </configuration>
</plugin>
  1. 运行配方
    上面激活配方之后, 接下来就可以运行了。在命令行输入如下命令:
mvn rewrite:run

执行过程中,控制台会输出如下信息:

在这里插入图片描述

查看原来的代码,会被格式化成如下:

在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207508.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu24 root用户修改密码 ubuntu新系统没有创建root用户

ubuntu 系统在虚拟机新建一个ubuntu24&#xff0c;但是在配置系统时候&#xff0c;并没有配置root密码&#xff0c;只是新增了一个自定义账号于密码&#xff0c;在创建好后&#xff0c;可以登录系统&#xff0c;设置root密码~ 1. ubuntu系统初始化后&#xff0c;登录自建账号 …

Nullinux:一款针对Linux操作系统的安全检测工具

关于Nullinux Nullinux是一款针对Linux操作系统的安全检测工具&#xff0c;广大研究人员可以利用该工具针对Linux目标设备执行网络侦查和安全检测。 该工具可以通过SMB枚举目标设备的安全状况信息&#xff0c;其中包括操作系统信息、域信息、共享信息、目录信息和用户信息。如…

C# 结构和类

要点&#xff1a; 1、结构概述 2、结构的使用 一 为什么需要结构 问题&#xff1a; System.Drawing.Color有很多颜色值&#xff0c;它是一个枚举吗&#xff1f; 正常人眼可分辨的颜色种类可达几十万种以上 Color提供使用RGB值返回颜色的方法 FromArgb() System.Drawing.Col…

LabVIEW开关磁阻电机特性测量系统

基于LabVIEW软件和特定硬件组件的开关磁阻电机&#xff08;SRM&#xff09;特性测量系统&#xff0c;结合多功能数据采集卡&#xff0c;统能够准确地测量并分析SRM的电磁特性&#xff0c;从而支持电机模型的精确建立和性能优化。 项目背景 在工业生产和家用电器领域&#xff0…

电子取证新视角:USB键盘流量提取密码方法研究与实现

0x01 引言 在当今数字化时代&#xff0c;USB设备的广泛使用使得信息安全和电子取证领域面临着新的挑战与机遇。特别是USB键盘&#xff0c;作为一种常见的输入设备&#xff0c;其流量中可能包含用户输入的敏感信息&#xff0c;如密码和其他私人数据。因此&#xff0c;研究USB键…

数据治理:制造企业转型的关键要素与战略需求

制造业&#xff0c;作为国民经济的主体&#xff0c;是立国之本、兴国之器、强国之基。从工业文明的曙光初现&#xff0c;到今日全球化的激烈竞争&#xff0c;始终昭示着一个真理&#xff1a;没有强大的制造业&#xff0c;就没有国家和民族的强盛。 为全面推进制造强国建设&…

Qt初识_项目文件解析

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Qt初识_项目文件解析 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. pro文件解析 2.…

跟着深度学习好书实践tensorflow神经网络

前言 2024 年诺贝尔物理学奖授予了约翰霍普菲尔德 &#xff08;John Hopfield&#xff09;和图灵奖得主、AI教父杰弗里辛顿&#xff08;Geoffrey Hinton&#xff09;&#xff0c;"以表彰他们利用人工神经网络进行机器学习的奠基性发现和发明"。 辛顿在接受电话采访…

基于Handsontable.js + Excel.js实现表格预览和导出功能(公式渲染)

本文记录在html中基于Handsontable.js Excel.js实现表格预览功能。 Handsontable官方文档 一、开发前的准备引入相关依赖库 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" co…

openpdf

1、简介 2、示例 2.1 引入依赖 <dependency><groupId>com.github.librepdf</groupId><artifactId>openpdf</artifactId><version>1.3.34</version></dependency><dependency><groupId>com.github.librepdf</…

正点原子STM32F407ZG 开发板简介

1. STM32F407ZG 学习资料 1&#xff09;ST 官方的学习资料 ST 官方资料有两个网址&#xff1a; www.stmcu.org.cn 和 www.st.com 。 www.stmcu.org.cn 是 ST 中文社区&#xff0c;里面的资料全部由 ST 中国区的人负责更新和整理&#xff0c;包含了所有 ST 公司的 …

计算机的错误计算(一百二十)

摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算&#xff1a; 若用下列Rust代码在线计算&#xff1a; fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…

微知-Bluefield DPU命名规则各字段作用?BF2 BF3全系列命名大全

文章目录 背景字段命名C是bmc的意思NOT的N是是否加密S表示不加密但是secureboot enable倒数第四个都是E倒数第五个是速率 V和H是200GM表示E serials&#xff0c;H表示P serials&#xff08;区别参考兄弟篇&#xff1a;[more](https://blog.csdn.net/essencelite/article/detail…

【通信协议讲解】单片机基础重点通信协议解析与总结(IIC,CAN,MODBUS...)

目录 一.IIC总线 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 二.SPI总线 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 三.串口通信 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 四.CAN总线 基础特性…

vue后台管理系统从0到1(5)

文章目录 vue后台管理系统从0到1&#xff08;5&#xff09;完善侧边栏修改bug渲染header导航栏 vue后台管理系统从0到1&#xff08;5&#xff09; 接上一期&#xff0c;我们需要完善我们的侧边狼 完善侧边栏 我们在 element 组件中可以看见&#xff0c;这一个侧边栏是符合我们…

I/O进程(Day26)

一、学习内容 I/O进程 标准IO 概念 针对文件的读写操作 文件IO最终达成的目的&#xff1a;将一个临时存在于内存中的数据&#xff0c;永久性的存放于磁盘当中 操作 文件IO的操作&#xff0c;需要这样的2个指针 一个指针&#xff1a;指向源数据&#xff0c;提供读取操作的指针 …

复杂系统学习

一、复杂网络分析在复杂性研究中的地位 1.复杂系统 系统中存在的复杂度从两个维度来看 ①系统自由度&#xff08;系统组成成分的数目&#xff09; ②相互作用&#xff08;线性到非线性的转换&#xff09; 复杂网络是复杂系统的骨架 复杂系统可以抽象成一个网络&#xff0…

大数据新视界 --大数据大厂之 Dremio:改变大数据查询方式的创新引擎

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【JVM】如何判断对象是否可以被回收

引用计数法&#xff1a; 在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1b;任何时刻计数器为零的对象就是不可能再被使用的。 优点&#xff1a;实现简单&#xff0c;判…

Visual Studio--VS安装配置使用教程

Visual Studio Visual Studio 是一款功能强大的开发人员工具&#xff0c;可用于在一个位置完成整个开发周期。 它是一种全面的集成开发环境 (IDE)。对新手特别友好&#xff0c;使用方便&#xff0c;不需要复杂的去配置环境。用它学习很方便。 Studio安装教程 Visual Studio官…