【问题标题】:How to auto-format Java code如何自动格式化 Java 代码
【发布时间】:2016-08-20 01:47:55
【问题描述】:

注意:在投票结束此问题之前,请注意我并不是在询问有关编码指南的任何意见;我只是想帮助自动完成一项任务。


我有一个新同事,他喜欢到处都有奇异的代码准则:

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();
                    } ) ) );

我厌倦了和他争论,我不想那样编码,所以我在预提交的 git hooks 和 Jalopy 上做了一些谷歌搜索。但找不到任何有用的东西。 Jalopy 似乎很老了(Java 1.5)。

基本上,我需要根据他的奇特准则(他已配置 tt_checkstyle.xml)在推送时自动格式化代码。在 pull 时,我不介意根据 Java 编码指南手动重新格式化代码。

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

有什么帮助(或解决此问题的任何替代方法)吗?谢谢

【问题讨论】:

    标签: java git code-formatting


    【解决方案1】:

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

    Git hooks

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


    Smudge / clean

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

    事实证明,您可以编写自己的过滤器来在 commit/checkout 上的文件中进行替换。

    这些被称为cleansmudge 过滤器。

    .gitattributes 文件中,您可以为特定路径设置过滤器,然后设置脚本,在文件被签出之前(“污点”,参见图 8-2)和文件'重新上演(“干净”,见图 8-3)。

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

    【讨论】:

    • 太棒了。但我需要运行一个命令(在一个钩子上)根据他的规则缩进 Java ......有什么工具吗?
    • 你有很多格式化工具,只需选择一个可以从命令行使用的好工具
    • 这是一个带有工具列表的答案stackoverflow.com/questions/996646/…
    • hmm...问题更多:任何工具可以根据 checkstyle.xml 文件中的一组规则进行格式化?这些似乎都没有。不过还是谢谢。
    • 对不起,我可以用 git 帮助你,而不是用 Java 工具。随意询问您可能有任何相关的 GIT Q。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2014-02-08
    • 2019-08-18
    • 2013-03-17
    • 2011-02-07
    • 2011-02-22
    • 2021-08-23
    相关资源
    最近更新 更多