如何自动格式化Java代码

时间:2016-04-26 09:55:05

标签: java git code-formatting

注意:在投票结束此问题之前,请注意我并未就编码指南提出任何意见;我只想帮助自动执行任务。

我有一位新同事喜欢在任何地方都有异国情调的代码指南:

obj.method( a, b );

@JoinColumn( name = "LANGUAGE_ID", referencedColumnName = "ID" )
@ManyToOne( optional = false, fetch = EAGER )

空间......到处都是空格!

当您使用链式代码时,这将变得非常难以阅读。

adapters.stream().filter( adapter -> isValidCRM( adapter.getId(), crmIds ) )
            .forEach( crmAdapter -> futures.add( CompletableFuture
                    .supplyAsync( () -> crmAdapter.getPerson( id ), ec ).exceptionally( throwable -> {
                        LOGGER.error( throwable.getMessage() );
                        return Response.builder().error( throwable ).build();
                    } ) ) );

我累了和他争吵而我不想这样编码,所以我在pre-commit git hooks和Jalopy上做了一些谷歌搜索......但是找不到任何有用的东西。 Jalopy似乎很老(Java 1.5)。

基本上,我需要根据他的异国情调指南(他已配置tt_checkstyle.xml)自动格式化代码。在拉动时,我不介意根据Java编码指南手动重新格式化代码。

我们使用的是Java 1.8,我使用的是NetBeans。我们使用git。

任何帮助(或任何替代方法)?感谢

1 个答案:

答案 0 :(得分:2)

您可以在服务器和本地使用git钩子或设置本地过滤器(涂抹/清洁)

<强> Git hooks

阅读官方文档以供完整参考。

<强> Smudge / clean

阅读所有相关内容并在此处进行设置:
https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes

  

事实证明,您可以编写自己的过滤器,以便在提交/结帐上的文件中进行替换。

     

这些称为cleansmudge过滤器。

     

.gitattributes文件中,您可以为特定路径设置过滤器,然后设置将在检出文件之前处理文件的脚本(“涂抹”,见图8-2)和之前的文件他们上演了(“干净”,见图8-3)。

     

这些过滤器可以设置为做各种有趣的事情。

enter image description here