在日常开发过程中,大家使用的开发IDE工具可能都不一样,有的人使用eclipse,有的人使用idea,同时由于编写代码风格不一致,所以当出现codeview的时候我们经常会重新格式化代码风格。如果在重新格式化代码风格之后再进行过提交,部分开发人员的ide上就会显示各种错乱等。所以在最开始的时候我们就要严格约束编码代码格式化的风格。避免团队代码风格混乱。
目前对于我们来说,主要使用的编码代码格式化风格以eclipse风格为主,所以代码格式化的风格主要以eclipse为准。然后使用的插件是:
spotless
我们的要求是:
1、每一个项目需要配置spotless插件及eclipse的format xml 2、在提交git之前,需要执行mvn spotless:apply命令,把整个项目进行格式化 3、提交git
所以这里的话我们来演示一下:
1)准备一个maven项目
这里我们用前面演示的MyBatisDemo这个项目来演示下,示例图如下:
2)创建配置文件
这里要使用spotless插件的话,我们需要配置两个配置文件,分别是:
1、代码版权信息 2、代码风格
所以这里我们在根目录创建一个名称为dev-support的文件夹,这个文件夹名称可以随便填写,然后在目录下创建两个文件,分别是:license-header和spotless.xml。license-header文件的主要内容是版权信息,也就是执行格式化的时候,在每一个代码前面添加注释的版权信息,示例内容如下:
/* * MyBatisDemo is a demonstration project * Copyright (C) 2024 智汇技术 https://www.80wz.com * * ... */
示例图如下:
在这个文件中我们可以添加任何信息。
第二个文件spotless.xml的主要内容是代码格式化相关的规范,实力内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <profiles version="13"> <profile kind="CodeFormatterProfile" name="'ShardingSphere Apache Current'" version="13"> <setting id="org.eclipse.jdt.core.compiler.source" value="1.8"/> <setting id="org.eclipse.jdt.core.compiler.compliance" value="1.8"/> <setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8"/> <setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="true"/> <setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/> <setting id="org.eclipse.jdt.core.formatter.lineSplit" value="200"/> <setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="200"/> <setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/> <setting id="org.eclipse.jdt.core.formatter.indentation.size" value="1"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="false"/> <setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/> <setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="160"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="10"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="106"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="106"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="106"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call.count_dependent" value="16|5|80"/> </profile> </profiles>
示例图如下:
这里的文件内容主要是参考:
https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml
这个对应的文档,当然这里还有其他的一些风格可以选择。
3)配置maven plugin
接下来我们再pom.xml文件中配置对应的plugin,实力内容如下:
<plugin> <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> <version>2.22.1</version> <configuration> <java> <eclipse> <file>dev-support/spotless.xml</file> </eclipse> <licenseHeader> <file>dev-support/license-header</file> </licenseHeader> </java> </configuration> <executions> <execution> <goals> <goal>apply</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin>
示例图如下:
配置完成之后,我们更新下maven,然后就可以看到有两个命令了,分别是:
#用于检查是否有不规范的文件 mvn spotless:check #自动格式化不规范的文件 mvn spotless:apply
这里我们根据实际情况执行一下就可以了,一般我们执行的命令是:
mvn spotless:apply
执行完成之后会自动进行格式化,并且添加版权信息,随便找个开发的java文件,示例图如下:
然后就可以提交git代码了。
上诉的spotless插件非常好用,对于整合团队代码风格混乱效果非常不错。
最后按照惯例,附上本案例的源码,登录后即可下载:
还没有评论,来说两句吧...