首页 > 编程语言 >google-java-format 插件

google-java-format 插件

时间:2023-05-12 14:36:10浏览次数:48  
标签:插件 code java format git google com

Google Java Style Guide

google-java-format

google-java-format 插件可用于重新格式化 Java 源代码,。启用后,它将替换通常的 Reformat Code 操作。该操作可以通过Code->Reformat Code触发,也可以使用Ctrl+Alt+L触发。

IDEA 中使用 google-java-format 插件

在 File->Settings->Plugins 中下载

从1.16.0版本起,google-java-format插件支持优化导入顺序

Shift+Ctrl+Alt+L后勾选Optimize imports

在 File->Settings->google-java-format Settings 中勾选Enable google-java-format

在 File->New Peojects Setup->Seeting for New Projects->Other Settings->google-java-format Settings 中勾选Enable google-java-format

google-java-format 插件使用了一些内部类,需要一些额外的配置才可用。

在 Help->Edit Custom VM Options... 中加入以下设置

--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED

完成后重启 IDE 即可。

git-code-format-maven-plugin

自动部署 google-java-format 代码格式化程序作为预提交 git 钩子的插件。

插件在 Maven 中使用

将以下代码添加到 pom.xml 文件中

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.home</groupId>
    <artifactId>home-api</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <git-code-format-maven-plugin.version>4.2</git-code-format-maven-plugin.version>
    </properties>

    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.7.11</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.cosium.code</groupId>
                <artifactId>git-code-format-maven-plugin</artifactId>
                <version>${git-code-format-maven-plugin.version}</version>
                <executions>
                    <!-- Format code during validate phase -->
                    <execution>
                        <id>formatter-hook</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>format-code</goal>
                        </goals>
                    </execution>
                    <!-- On commit, format the modified files -->
                    <execution>
                        <id>install-formatter-hook</id>
                        <goals>
                            <goal>install-hooks</goal>
                        </goals>
                    </execution>
                    <!-- On Maven verify phase, fail if any file
                    (including unmodified) is badly formatted -->
                    <execution>
                        <id>validate-code-format</id>
                        <goals>
                            <goal>validate-code-format</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>com.cosium.code</groupId>
                        <artifactId>google-java-format</artifactId>
                        <version>${git-code-format-maven-plugin.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

一起回顾一下Maven的生命周期

validate阶段,git-code-format:format-code格式化代码

initialize阶段,git-code-format:install-hooks安装一个gitpre-commit钩子

verify阶段,git-code-format:validate-code-format验证代码格式


手动格式化代码

mvn git-code-format:format-code -Dgcf.globPattern=**/*

手动验证代码格式

mvn git-code-format:validate-code-format -Dgcf.globPattern=**/*

 

标签:插件,code,java,format,git,google,com
From: https://www.cnblogs.com/-ori/p/17387411.html

相关文章

  • 【转】JavaScript 执行上下文——JS 的幕后工作原理
    转自译文:JavaScript执行上下文——JS的幕后工作原理。译文中图片不显示,要结合原文看,看着不方便。整理了一份含图片的。所以有了此篇的转载,以方便阅读。以下是正文:原文:JavaScriptExecutionContext–HowJSWorksBehindTheScenes,作者:VictorIkechukwu所有JavaScript代......
  • 关于java中execl导入和导出的问题
    前言:最近没有更新,懈怠了。前两天刚写了一个execl导出的需求,过来总结一下这方面的内容大概在很久很久以前,微软的电子表格软件Excel以操作简单、存储数据直观方便,还支持打印报表,在诞生之初,可谓深得办公室里的白领青睐,极大的提升了工作的效率,不久之后,便成了办公室里的必备工具。随......
  • Java使用Font字体的方法
    Java使用Font字体有两种方式:1.直接使用系统已经安装的字体。Fontfont=newFont("SourceHanSerifSC",Font.PLAIN,18); 2.使用流读取外部字体资源,然后创建字体。InputStreamfontInputStream=ResourceUtil.getStream("font/SourceHanSerifSC.ttf");Fontfont......
  • 客户端javascript对象的几何属性(获得大小及坐标)
    在一些客户端javascript对象中,存在着如宽度、高度、坐标类的几何属性,同时这些属性在不同的浏览器下又有不同的属性名。现在将所有的此类对象的几何属性汇总,便于学习,免得搞混。1.浏览器窗口在桌面的坐标(x,y)Window      IE下:window.screenLeft,window.screenTo......
  • java爬虫如何使用代理
    在Java程序中使用代理是爬取网站数据的常见技术之一。代理服务器允许你通过它来访问某个网站,从而让你可以隐藏自己的真实IP地址或者规避一些地理限制等问题。本文章将介绍如何使用Java实现网络爬虫代理。我们首先将介绍Java提供的代理相关类和方法,然后是如何编写代码实现代理网络......
  • Google I/O 2023
    视频   产品框架  思维导图......
  • java:常用工具类库
    最近一直在减少造轮子的做法,简单总结了一下各个工具类库:排名不分先后,链接的地址为自己找了几个比较合适的例子,供参考。 1、ApacheCommonApacheCommons是对JDK的拓展,包含了很多开源的工具,用于解决经常会遇到的问题,减少重复工作。 2、GoogleGuava Guava工程包含了若干......
  • Google I/O 2023发布大语言模型PaLM2
    ·PaLM2模型提供了不同规模的四个版本,其中轻量级的Gecko模型可以在移动设备上运行,速度非常快,不联网也能在设备上运行。谷歌还推出了两个专业领域大模型,其中,Med-PaLM2能回答各种医学问题,是首个在美国医疗执照考试中达到专家水平的大语言模型。 谷歌首席执行官桑达尔·皮查伊......
  • Java设计模式-适配器模式
    适配器模式(AdapterPattern)是一种常见的设计模式,它主要用于在不改变现有系统结构的情况下,将一个类的接口转换成客户端所期望的另一个接口。在本文中,我们将介绍适配器模式的基本概念、实现方法以及优缺点,并探讨适配器模式在Java编程语言中的具体应用。简介适配器模式是一种结构型......
  • Javascript基础(三)
    ⭐WebAPIsWebAPIs和JS基础关联性JS的组成API和WebAPIAPI(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。WebAPI是......